Welcome to Sign in | Help

Re: Functia CAST

  •  11-27-2007, 3:57 PM

    Re: Functia CAST

    După cum a scris şi Răzvan, IsNumeric este o funcţie problematică.

    Poţi încerca următoarea soluţie care verifică dacă un şir de caractere reprezintă un număr întreg pozitiv.

     

    CREATE TABLE TestIsNumeric(Valoare VARCHAR(25) PRIMARY KEY)
    GO

    INSERT INTO TestIsNumeric VALUES('123')
    INSERT INTO TestIsNumeric VALUES(' 123 ')
    INSERT INTO TestIsNumeric VALUES('.')
    INSERT INTO TestIsNumeric VALUES('.1')
    INSERT INTO TestIsNumeric VALUES('$123')
    INSERT INTO TestIsNumeric VALUES('12e3')
    INSERT
    INTO TestIsNumeric VALUES('12 3')
    INSERT INTO TestIsNumeric VALUES('e')
    GO
    SELECT '['+Valoare+']' AS Val,   
                ISNUMERIC(Valoare) AS Is_Numeric,
          CASE
                      WHEN LEN(RTRIM(LTRIM(Valoare)))>=1 AND
    LEN(RTRIM(LTRIM(Valoare)))<=18 AND PATINDEX('%[^0-9]%',RTRIM(LTRIM(Valoare)))=0 THEN 1
                     
    ELSE 0
          END AS Este_Bigint_Pozitiv

    FROM TestIsNumeric
    GO

     Soluţia poate fi adaptată şi pentru valori care includ operatorii unari +/-, inclusiv pentru a putea accepta toate valorile numerice pozitice admise de BIGINT.

View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems