gpt4 book ai didi

sql-server - SQL 中是否有此查询语法的实现?

转载 作者:行者123 更新时间:2023-12-04 18:44:25 26 4
gpt4 key购买 nike

在某些 SQL 方言中,您可以声明(类似于):

SELECT * FROM SomeTable WHERE (val1,val2) IN 
(SELECT val1,val2 FROM SomeOtherTable)

但我不知道如何在我使用的 TSQL (sql server 2k) 中执行此操作。

我知道(目前正在使用)解决方法,例如使用联接或串联值,但是我忽略了 TSQL 中的一些语法来做到这一点吗?

更新:这是有效的 SQL-99 语法,这就是为什么我认为连接是一种解决方法,即使它的性能更高。我的问题可能更好:

TSQL 中是否有此语法的实现?

更新 2:我刚刚在 Mysql 上测试了这个语法,它在那里工作正常。

最佳答案

SELECT  *
FROM SomeTable st
WHERE EXISTS
(
SELECT 1
FROM SomeOtherTable sot
WHERE sot.val1 = st.val1
AND sot.val2 = st.val2
)

这实际上是 IN 结构针对任何 SEMI JOIN 方法进行了优化。

关于你的问题,

Is there an implementation of this syntax in T-SQL?

答案是

作为documentation说:

subquery that has a result set of one column. This column must have the same data type as test_expression.

关于sql-server - SQL 中是否有此查询语法的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/955652/

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