最新动态
相关新闻
sql查询用到not in时,注意null值
分别设计两个表test1 、test2,表的结构是一样的,均为:
rec_no (int)
content (varchar(20))
test1表中的值为:
rec_no content
1
2
3
4
5
6
test2表中的值为:
1
2
3
4
5
然后看下面的语句:
select * from test1 where content in (select content from test2)
查询的结果是意料之中的,如下:
2
4
6
但是用 not in 查询结果会怎样呢?
select * from test1 where content not in (select content from test2)
结果为空值,一行数据也没有。我原来以为结果应该为:
1
3
5
后来我猜想应该是因为在子查询中存在null值的原因。把上面的语句改造一下
select * from test1 where content not in (select content from test2 where content is not null)
结果为:
1
3
5
所以以后用not in 的时候要考虑子查询的结果中是否存在null.一定要注意哦。我是经过了小小困惑才得到这个经验的。切记切记。
相关新闻
联系方式
地址:沈阳市东陵区
万柳塘路109甲1宏发 大厦525室
万柳塘路109甲1宏发 大厦525室
-
电话:024-24804848
- 8748636
- 15317796
- 102656105