首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询条件"<>"的疑问解决思路

2012-01-19 
查询条件的疑问有个表的一个字段a不插入值,所有记录的该字段都保持null的状态,但我select的时候,选择a

查询条件"<>"的疑问
有个表的一个字段a不插入值,所有记录的该字段都保持null的状态,但我select的时候,选择a <> '1 '的情况,按理说应该把所有的数据都查出来,但实际上查不出来,这是为什么,难道在where后面提到的字段只要是null,就会过滤掉?

[解决办法]
null <> '1 '的逻辑值既不是true也不是false而是unknown
[解决办法]
可以这么判断: WHERE ISNULL(a, ' ') = ' '
[解决办法]
使用了 NULL 就要考虑三种状态
true false unknown
[解决办法]
isnull (a, '99 ') = '99 '
[解决办法]
WHERE ISNULL(a, ' ') <> '1 '

[解决办法]
WHERE ISNULL(a, '0 ') <> '1 '

[解决办法]
比较运算符测试两个表达式是否相同!而在sql中
if(null = null)
print '1 '
都无法判断~~那就更不用说1 <> null了
[解决办法]
WHERE ISNULL(a, '0 ') <> '1 '
[解决办法]
ISNULL
以指定的取代值來取代 NULL。

語法
ISNULL ( check_expression , replacement_value )

引數
check_expression

是要檢查 NULL 的運算式,而 check_expression 可以是任何型別。

replacement_value

如果 check_expression 為 NULL 時,所傳回的運算式,replacement_value 必須有與 check_expresssion 相同的型別。

傳回型別
傳回與 check_expression 相同的型別。

備註
如果不是 NULL 的話,會傳回 check_expression 的值,否則會傳回 replacement_value。

热点排行