gpt4 book ai didi

sql - SQL中EXISTS和IN的区别?

转载 作者:行者123 更新时间:2023-12-02 10:56:34 25 4
gpt4 key购买 nike

SQL 中的 EXISTSIN 子句有什么区别?

什么时候应该使用EXISTS,什么时候应该使用IN

最佳答案

exists 关键字可以以这种方式使用,但实际上它是为了避免计数:

--this statement needs to check the entire table
select count(*) from [table] where ...

--this statement is true as soon as one match is found
exists ( select * from [table] where ... )

当您有 if 条件语句时,这非常有用,因为 existscount 快得多。

in 最适合在需要传递静态列表的情况下使用:

 select * from [table]
where [field] in (1, 2, 3)

in 语句中有一个表时,使用 join 更有意义,但大多数情况下这并不重要。无论哪种方式,查询优化器都应该返回相同的计划。在某些实现中(大多数是较旧的,例如 Microsoft SQL Server 2000)in 查询将始终获得 nested join计划,而 join 查询将使用嵌套,mergehash作为适当的。更现代的实现更加智能,即使使用 in 也可以调整计划。

关于sql - SQL中EXISTS和IN的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24929/

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