sql语句如何判断表中某字段内容为空,或NULL?谢谢
use result select A001 from test where A001='' or A001 is null
这条语句运行结果发现有很多不为空的数据也帅选出来了.请教大虾什么原因。。。。
另外我的A001是datetime类型。。。
use result
select A001 from test where A001 is null
这个是最标准的判断字段为空的查询。
因为是datetime类型,所以空只能是NULL的情况,不会出现''情况,而且''的情况只能是字符型才可能会有的情况。A001='' 本身就是错误的使用,因为字段是datetime类型。
所以你只需要使用select A001 from test where A001 is null来看看结果。
select A001 from test where A001 is null
这个是最标准的判断字段为空的查询。
因为是datetime类型,所以空只能是NULL的情况,不会出现''情况,而且''的情况只能是字符型才可能会有的情况。A001='' 本身就是错误的使用,因为字段是datetime类型。
所以你只需要使用select A001 from test where A001 is null来看看结果。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-12-17
sql server 中使用 is null 或 is not null 来处理列的空值。
语法为:
列名 is null (字段为空返回true ,不为空返回 false)
列名 is not null (字段为空返回false,不为空返回 true)
例:
select case when a is null then 1 else 0 end from aaa
语法大意:如果a列 为空显示1,不为空显示0
语法为:
列名 is null (字段为空返回true ,不为空返回 false)
列名 is not null (字段为空返回false,不为空返回 true)
例:
select case when a is null then 1 else 0 end from aaa
语法大意:如果a列 为空显示1,不为空显示0
第2个回答 2011-07-04
use result select A001 from test where A001='' or isnull(A001,'2011-1-1')='2011-1-1' 你看看这样行不行
第3个回答 2011-07-04
SQL server里,01/01/1900 12:00:00 AM 也视为空 ('',不是null)追问
没错 就是搜出这个东西来了。。。我知道''这个不是NULL,当我执行
use result select A001 from test where A001='' 时,就会出来你说的那种情况,是不是就想楼上那位说的datetime类型只能 用null来判断为空,还是。。。
再问个问题,如果对这种类型的字段不输入日期,只输入空格键会出现什么 谢谢
空格键 也一样是01/01/1900 12:00:00 AM
你要考虑这里的01/01/1900是不是用户输入空格造成,结果变成01/01/1900?
如果这样,那么你这个sql也没有错(因为你本来就是想找出用户的空白输入)
好的 谢谢你
本回答被提问者采纳第4个回答 2011-07-04
where len(A001)<1