c44*_*548 2 sql-server sql-server-2012
我正在尝试在 sql server 2012 中实现类似的功能。但是这种语法不存在。它有什么替代方案,为什么 sql server 不支持这种语法糖?
这意味着 C1 匹配 D1,C2 匹配 D2,Cn 匹配 Dn。当所有列匹配时,它只会过滤掉结果。
SELECT * FROM tableA
WHERE
([C1], [C2],..., [Cn]) IN (SELECT [D1], [D2],..., [Dn] FROM tableB)
Run Code Online (Sandbox Code Playgroud)
您的查询是标准 SQL。不幸的是,它还没有在 SQL Server 中实现。您可以表达您对要实现的此功能的支持:Microsoft Azure 反馈:添加对 ANSI 标准行值构造函数的支持。
您可以使用转换IN
为EXISTS
子查询的常用方法。仅适用于一列或多列:
SELECT *
FROM tableA AS a
WHERE EXISTS
( SELECT 1
FROM tableB AS b
WHERE a.[C1] = b.[D1]
AND a.[C2] = b.[D2]
---
AND a.[Cn] = b.[Dn]
) ;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1657 次 |
最近记录: |