首页新闻找找看学习计划

sql 中的isnull()函数

0
悬赏园豆:5 [已解决问题] 解决于 2014-04-02 16:03

USE production
GO
SELECT  InvoiceId,*
FROM    dbo.[Order]
WHERE   ( ISNULL(InvoiceId, 0) <> 0 )


USE production
GO
SELECT * FROM dbo.[Order] WHERE InvoiceId<>0

这两个查询语句中的where 条件的区别在哪里,查询的结果是一致的,为什么有什么一定要用到isnull呢

小龙女-90hou的主页 小龙女-90hou | 初学一级 | 园豆:5
提问于:2013-09-29 13:25
< >
分享
最佳答案
0

第一个语句,就算InvoiceId为null,也不会查出来。

第二个语句,如果InvoiceId为null,那么会出现。

(前提,将<>改为=)

收获园豆:3
幻天芒 | 高人七级 |园豆:36522 | 2013-09-29 13:57

我查询的表中字段invoiceid是有null 值的,但是两个语句的查询结果是一致的,怎么回事

小龙女-90hou | 园豆:5 (初学一级) | 2013-09-29 15:01

@小龙女-90hou: 如果你改<>为=,结果就不一样了

邀月 | 园豆:25200 (高人七级) | 2013-09-29 15:10

@小龙女-90hou: 邀月大大的,正解。

幻天芒 | 园豆:36522 (高人七级) | 2013-09-29 18:06

@邀月: 谢谢,明白了!

小龙女-90hou | 园豆:5 (初学一级) | 2013-09-29 18:15
其他回答(2)
0
ISNULL(InvoiceId, 0) <> 0)

如果InVoiceId字段为NULL,则给默认值0 , 上面主要筛选InVoiceId不为null的数据

InvoiceId<>0

上面主要筛选InVoiceId不为0的数据

收获园豆:1
新麦穗 | 园豆:82 (初学一级) | 2013-09-29 13:57

正解。。。

支持(0) 反对(0) 培培@java | 园豆:38 (初学一级) | 2013-09-30 14:19
0

如果里面有空值怎么办!主要就是区分空值出现的情况!

收获园豆:1
鹰击长空123 | 园豆:320 (菜鸟二级) | 2013-09-29 16:26

谢谢,明白了!

支持(0) 反对(0) 小龙女-90hou | 园豆:5 (初学一级) | 2013-09-29 18:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册