我是靠谱客的博主 外向向日葵,这篇文章主要介绍SQL Server的WHERE条件"短路评价"大杀器CASE WHEN1. 条件里没有子查询 -> 短路评价2. 条件里有子查询,但子查询是针对真实表的 -> 准“短路评价”3. 条件里有子查询,且使用了“表函数” -> 开始失去控制了。4. 短路评价大杀器"CASE WHEN",现在分享给大家,希望可以做个参考。

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

可惜证据文档取不出来,而且冗长,就大致做个备忘录,有心的人看看就明白了。


1. 条件里没有子查询 -> 短路评价

SELECT * FROM test WHERE some_fast_check()=1 OR some_slow_check(c) = 1

2. 条件里有子查询,但子查询是针对真实表的 -> 准“短路评价”

SELECT * FROM test WHERE some_fast_check()=1 OR c IN (SELECT * FROM normal_or_temp_table)

需要注意的是:子查询一定会最先执行,相当于先做成一个内存表,勉强说得过去,但是万一这个子查询很慢,偏偏第一个条件已经满足了的时候,那就悲剧了,拖累了整个速度

的确,如果第一个条件满足的话

最后

以上就是外向向日葵最近收集整理的关于SQL Server的WHERE条件"短路评价"大杀器CASE WHEN1. 条件里没有子查询 -> 短路评价2. 条件里有子查询,但子查询是针对真实表的 -> 准“短路评价”3. 条件里有子查询,且使用了“表函数” -> 开始失去控制了。4. 短路评价大杀器"CASE WHEN"的全部内容,更多相关SQL内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部