大家分析一下这两种写法得到的结果怎么会不一样的。。。

yyw84 2006-05-12 06:02:19
if ('111' = null)
print 'null'
else
print 'not null' -- 被输出


if ('111' <> null)
print 'not null'
else
print 'null' -- 被输出


-- 输出结果 --
not null
null
...全文
92 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyw84 2006-05-12
  • 打赏
  • 举报
回复
谢谢楼上两位,

不过有点糊涂,不知道定这样的标准好处是什么?
xeqtr1982 2006-05-12
  • 打赏
  • 举报
回复
set ansi_nulls off
if ('111' = null)
print 'null'
else
print 'not null' -- 被输出


if ('111' <> null)
print 'not null'
else
print 'null' -- 被输出
set ansi_nulls on
xeqtr1982 2006-05-12
  • 打赏
  • 举报
回复
SQL-92 标准要求对空值的等于 (=) 或不等于 (<>) 比较取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,即使 column_name 中存在空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中存在非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍返回零行。
昵称被占用了 2006-05-12
  • 打赏
  • 举报
回复
你这样试试

if ('111' is null)
print 'null'
else
print 'not null'


if ('111' is not null)
print 'not null'
else
print 'null'


对null的判断,不管是用=还是<>还是大于小于,都返回false



34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧