日期:2014-05-18 浏览次数:20733 次
declare @a varchar(4) set @a='5' declare @b varchar(4) set @b='6' select @a+@b --56 select Convert(INT,@a)+Convert(INT,@b) --11
------解决方案--------------------
结果永为null,
SELECT Convert(INT,NULL) '字段名' /* 字段名 ----------- NULL (1 row(s) affected) */
------解决方案--------------------
恒等于NULL
------解决方案--------------------
轉成INT類型的NULL值
------解决方案--------------------
SELECT Convert(INT,NULL) '字段名'
Convert()函数是SQL里的类型转换函数,第一个参数表示要转换成的数据类型,第二个参数是需要转换的数据。在这个语句里就表示要把‘NULL’转换为INT类型。
比如有个字符串为"012305”,使用Convert(INT,“012305”)后转换为整数12305
'字段名'表示这个查询结果显示时的列名
具体到这个语句NULL转换为INT类型后仍然为NULL
所以返回的结果仍然为NULL
------解决方案--------------------
select * INTO T1 from ( SELECT NULL '字段名' UNION ALL SELECT '' '字段名' )aa --表T1:列类型变成了 varchar(1) select * INTO T2 from ( SELECT Convert(INT,NULL) '字段名' UNION ALL SELECT '' '字段名' )aa --表T2:列类型变成了 Int
------解决方案--------------------
CONVERT(INT,NULL)
在UNION或者case when ...时还是有用的,他指定了该列的数据类型为INT,如
SELECT CONVERT(INT,NULL) AS Col1 UNION SELECT 'haha'