我有一张这样的桌子:
TransId. LayerNo. AccountId.
100. 1. 2.
100. 2. 3.
120. 1. 5.
120. 2. 6.
120. 3. 12.
70. 1. 2.
我想在以下位置找到transId:
(LayerNo = 1和(accountId = 2或5))
和
(LayerNo = 2和(accountId = 3或6))
结果集将是第1,2,3,4行。
如何编写查询以获取结果?
我的数据库是SQL Server 2008 R2
提前致谢
尼玛
最佳答案
SELECT TransId
FROM your_table
WHERE ( layerno = 1
AND accountid IN ( 2, 5 ) )
INTERSECT
SELECT TransId
FROM your_table
WHERE ( layerno = 2
AND accountid IN ( 3, 6 ) )
关于sql - 具有复杂条件的SQL子查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9103570/