SQL Server: Error converting data type nvarchar to numeric

前端 未结 3 663
时光说笑
时光说笑 2020-12-29 10:05

If I run the SQL query below; I get the following error:

Error converting data type nvarchar to numeric.

COLUMNA c

相关标签:
3条回答
  • 2020-12-29 10:38

    You might need to revise the data in the column, but anyway you can do one of the following:-

    1- check if it is numeric then convert it else put another value like 0

    Select COLUMNA AS COLUMNA_s, CASE WHEN Isnumeric(COLUMNA) = 1
    THEN CONVERT(DECIMAL(18,2),COLUMNA) 
    ELSE 0 END AS COLUMNA
    

    2- select only numeric values from the column

    SELECT COLUMNA AS COLUMNA_s ,CONVERT(DECIMAL(18,2),COLUMNA) AS COLUMNA
    where Isnumeric(COLUMNA) = 1
    
    0 讨论(0)
  • 2020-12-29 10:41

    I was running into this error while converting from nvarchar to float.
    What I had to do was to use the LEFT function on the nvarchar field.

    Example: Left(Field,4)

    Basically, the query will look like:

    Select convert(float,left(Field,4)) from TABLE
    

    Just ridiculous that SQL would complicate it to this extent, while with C# it's a breeze!
    Hope it helps someone out there.

    0 讨论(0)
  • 2020-12-29 10:49

    In case of float values with characters 'e' '+' it errors out if we try to convert in decimal. ('2.81104e+006'). It still pass ISNUMERIC test.

    SELECT ISNUMERIC('2.81104e+006') 
    

    returns 1.

    SELECT convert(decimal(15,2), '2.81104e+006') 
    

    returns

    error: Error converting data type varchar to numeric.

    And

    SELECT try_convert(decimal(15,2), '2.81104e+006') 
    

    returns NULL.

    SELECT convert(float, '2.81104e+006') 
    

    returns the correct value 2811040.

    0 讨论(0)
提交回复
热议问题