gpt4 book ai didi

sql - IF Exists 不同写法之间的区别?

转载 作者:行者123 更新时间:2023-12-04 17:37:51 26 4
gpt4 key购买 nike

我正在使用 SQL Server 2008 R2

我只想测试表中是否存在某些东西

IF EXISTS (SELECT * FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT ca FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT 1 FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT (1) FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT TOP 1 1 FROM ta WHERE ca = 'abc') PRINT 'YES'

它们在结果/副作用/性能(无论多么微小)上是否有任何差异?

谢谢

最佳答案

绝对没有区别 - IF EXISTS(...)将只检查基于 WHERE 的行是否存在你的陈述中的条款。

声明中的其他所有内容都无关紧要 - 是否使用 SELECT * 没有任何区别或 SELECT 1或 或 SELECT TOP 1 * .即使使用 SELECT * .... 不是 从表中选择所有列 - 它再次仅根据 WHERE 检查数据是否存在条款。

所有五个查询都有 正好相同的执行计划

关于sql - IF Exists 不同写法之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12812288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com