Sunday, 15 August 2010

sql - Conversion error in EXCEPT -



sql - Conversion error in EXCEPT -

please see below sql

select 3 [col] except select cast(1.24 decimal(10,3)) [col] result 3.000

here, appears 3 converted decimal(10,3).

see next sql,

select 1 [col] except select cast(1.24 nvarchar(10)) [col] result msg 245, level 16, state 1, line 1 conversion failed when converting nvarchar value '1.24' info type int.

here, appears like, 1.24 converted int.

if create 1 1.0 (decimal), 1 time again sql works fine.

select 1.0 [col] except select cast(1.24 nvarchar(10)) [col] result: 1.0

why behaving in contrasting manner, or 2nd error displayed in misleading fasion.?

in first query, select 3 [col] yields int , select cast(1.24 decimal(10,3)) [col] yields decimal; data type precedence means decimal attempted, , 1.24 converted successfully.

in sec query, select 3 [col] yields int , select cast(1.24 nvarchar(10)) [col] yields nvarchar; data type precedence means int attempted, 1.24 improve decimal.

in 3rd query, select 1.0 [col] yields decimal , select cast(1.24 nvarchar(10)) [col] yields nvarchar; data type precedence means decimal attempted, , 1.24 converted successfully.

in summary:

decimal before int

int before nvarchar

sql sql-server tsql

No comments:

Post a Comment