Pet*_*ter 2 t-sql sql-server subquery
在某些SQL方言中,您可以声明(某些内容):
SELECT * FROM SomeTable WHERE (val1,val2) IN
(SELECT val1,val2 FROM SomeOtherTable)
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在我使用的TSQL(sql server 2k)中这样做.
我知道(并且现在使用)变通方法,比如使用连接或连接值,但TSQL中是否有一些语法我忽略了这样做?
更新:这是有效的SQL-99语法,这就是为什么我认为连接是一种解决方法,即使它更高效.我的问题可能更好:
在TSQL中是否有这种语法的实现?
UPDATE2:我刚用Mysql测试了这个语法,它在那里工作得很好.
Qua*_*noi 10
SELECT *
FROM SomeTable st
WHERE EXISTS
(
SELECT 1
FROM SomeOtherTable sot
WHERE sot.val1 = st.val1
AND sot.val2 = st.val2
)
Run Code Online (Sandbox Code Playgroud)
这实际上IN是使用任何SEMI JOIN方法优化构造的内容.
至于你的问题,
是否有这种语法的实现
T-SQL?
答案是否定的
正如文件所说:
...
subquery具有一列的结果集.此列必须具有相同的数据类型test_expression.
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |