sqlserver exists和in 与exists和not in
程序员文章站
2022-05-17 08:01:06
...
1、exists 和 in 1.1 正常情况下exists和in的效果是一样的,如图试验 即使子查询中包含null也没有关系,依然可以正常使用 1.2 in 和 exists效率比较 先看in 由图中可以100万的数据 用in的时间是14秒 用exist的时间也是14秒。 总结的规律是in和exists查询的效
1、exists 和 in
1.1 正常情况下exists和in的效果是一样的,如图试验
即使子查询中包含null也没有关系,依然可以正常使用
1.2 in 和 exists效率比较
先看in
由图中可以100万的数据 用in的时间是14秒
用exist的时间也是14秒。
总结的规律是in和exists查询的效率相差不多
2、not in 和not exists
可以看出not in 如果子查询中有NUL将不会出现任何值。
所以再用not in时,最好在子查询中加上is not null
如图:
由图可知加上限制正常显示了。
再看Not exists
可以看出即使子查询寻有null,依然可以查出正确的数据
2.2 在效率方面 not in 和no exists也是相差不多
推荐阅读