日期:2014-05-17  浏览次数:20675 次

sql server 关于空值判定的查询
SQL code

SELECT * FROM tableName WHERE columnName IS NOT NULL

SELECT * FROM tableName WHERE ISNULL(columnName, '')<>''

--上面两个空值判定的查询语句的区别是什么?



------解决方案--------------------
用方法1效率高
方法2可能会造成用不到索引,具体看执行计划
方法3需要设置执行环境SET ANSI_NULLS ON
------解决方案--------------------
NULL 不可以用 = 和 <>判断,
SELECT * FROM tableName WHERE ISNULL(columnName, '')<>'' 这个表示当columnName为NULL
SELECT * FROM tableName WHERE columnName IS NOT NULL 表示 columnName不为NULL

呵呵,等待大神解释……


------解决方案--------------------
哦 方法一的效率高哈 学习学习……
------解决方案--------------------
探讨

NULL 不可以用 = 和 <>判断,
SELECT * FROM tableName WHERE ISNULL(columnName, '')<>'' 这个表示当columnName为NULL
SELECT * FROM tableName WHERE columnName IS NOT NULL 表示 columnName不为NULL

呵呵,等待大神解释……

------解决方案--------------------
探讨

引用:

用方法1效率高
方法2可能会造成用不到索引,具体看执行计划
方法3需要设置执行环境SET ANSI_NULLS ON

我在用SELECT * FROM tableName WHERE columnName IS NOT NULL查询时它把空行都查询出来了啊,
SELECT * FROM tableName WHERE ISNULL(columnName……