sql server'in'或'or'

sql server'in'或'or',第1张

sql server'in'或'or'

双方

IN
OR
会做一个查询
b = 0
,接着一个
b = 3
,然后做一个合并连接的两个结果集,最后筛选出任何重复

使用

IN
,重复项并没有真正的意义,因为
b
不能同时使用
0
3
,但是事实是
IN
将重复转换为
b = 0 OR b = 3
OR
,重复项_是_ 有意义的,因为您可以使用
b = 0 OR a = 3
,并且如果您要将两个分开结果集,对于与两个条件均匹配的每条记录,最终可能会出现重复项。

因此,无论您使用

IN
还是,都将始终执行重复过滤
OR
。但是,如果您从一开始就知道没有重复项(通常是在使用时的情况),
IN
则可以使用
UNIOnALL
不过滤重复项的方法来获得一些性能:

select distinct(a)from mytablewhereb = 0UNIOn ALLselect distinct(a)from mytablewhereb = 3


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4901943.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-12
下一篇2022-11-12

发表评论

登录后才能评论

评论列表(0条)

    保存