null 值查询的问题 select * from tab where isnull(a,'')<>'' 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SET ANSI_NULLS指定在对空值使用等于 (=) 和不等于 (<>) 比较运算符时,这些运算符的 SQL-92 遵从行为。语法SET ANSI_NULLS {ON | OFF}注释SQL-92 标准要求对空值的等于 (=) 或不等于 (<>) 比较取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,即使 column_name 中存在空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中存在非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍返回零行。当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于 (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE column_name = NULL 的 SELECT 语句返回 column_name 中含有空值的行。使用 WHERE column_name <> NULL 的 SELECT 语句返回列中含有非空值的行。此外,使用 WHERE column_name <> XYZ_value 的 SELECT 语句返回所有非 XYZ 值和非 NULL的行。 select * from tab where a=NULL select * from tab where a is NULL isnull()函数,如果sal的值为空,那么用0来替换。否则,原样sal值。/*说明空值是不能进行比较的*/if(null=null) print 'ok'elseprint 'no'go所以,不能使用比较运算符。还有 ''俩引号并不是空值,它的ascii码等于0。可以进行比较。 isnull(sal, 0)函数,如果sal的值为空,那么用0来替换。否则,原样sal值。 select * from tab where isnull(a,'')<>''正解.如果字段a为null,转换为'',这样才可以使用<>'' select * from tab where isnull(a,'')<>''正解.如果字段a为null,转换为'',这样才可以使用<>''回楼上的:因为a为null是被转换成了ascii码的0,所以是用0来进行比较。当然可以用。if isnul('',1)=0 print 'ok'else print 'no'go select * from tab where isnull(a,'')<>''正解 select * from tab where a is NULL 如何只把登录安全设置为SQL验证? 怎样修改这个存储过程 请教一个sql 的case 简单用法 这个查询我怎么SQL我怎么写啊 大家来帮个忙!谢谢! 创建表出现异常提示 各位专家:关于sqlserver中数据库乱码问题,请赐教 pb7+ms sql server2000开发,在多个用户使用时,应用程序的与数据库的连接经常会死掉 问一个关于shape的简单问题 奉送40分,请问各位大虾可否知道在VFP项目发布(成安装)时在压缩阶段出现什么CAB的错误是怎么回事,怎么处理好? 求一条SQL语句的写法 如何通过SQL的insert语句项数据表中添加中文记录
指定在对空值使用等于 (=) 和不等于 (<>) 比较运算符时,这些运算符的 SQL-92 遵从行为。语法
SET ANSI_NULLS {ON | OFF}注释
SQL-92 标准要求对空值的等于 (=) 或不等于 (<>) 比较取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,即使 column_name 中存在空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中存在非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍返回零行。当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于 (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE column_name = NULL 的 SELECT 语句返回 column_name 中含有空值的行。使用 WHERE column_name <> NULL 的 SELECT 语句返回列中含有非空值的行。此外,使用 WHERE column_name <> XYZ_value 的 SELECT 语句返回所有非 XYZ 值和非 NULL的行。
/*说明空值是不能进行比较的*/
if(null=null)
print 'ok'
else
print 'no'
go
所以,不能使用比较运算符。
还有 ''俩引号并不是空值,它的ascii码等于0。可以进行比较。
正解.
如果字段a为null,转换为'',这样才可以使用<>''
正解.
如果字段a为null,转换为'',这样才可以使用<>''
回楼上的:因为a为null是被转换成了ascii码的0,所以是用0来进行比较。当然可以用。
if isnul('',1)=0
print 'ok'
else
print 'no'
go
正解