SQL,匹配列b中的所有值,并返回列a以获得这些匹配

时间:2012-05-03 10:41:44

标签: sql sql-server sql-match-all relational-division

我只看一张桌子,我有需要匹配的值,所以。

Col A / Col B
1 / 1
1 / 2
1 / 3
2 / 2
2 / 3
4 / 1
4 / 3

所以我传入的值是1和3,我想要返回1和4。

我已经尝试了一个使用can的组,我必须使用两个子查询,但它不起作用。

编辑:理想情况下我想使用选择查询,因为我需要在我在sql server之外构建的另一个查询中使用此查询。

EDIT2:理想情况下,我想将输入作为csv字符串传递

2 个答案:

答案 0 :(得分:4)

select ColA 
from your_table
where ColB in(1, 3)
group by ColA
having count(ColA) > 1

答案 1 :(得分:0)

如果我已正确理解传入的值与ColumnB相关且返回值来自ColumnA:

SELECT      A.ColumnA
FROM        [YOUR TABLE] A
INNER JOIN  [YOUR TABLE] ON ( A.ColumnA = B.ColumnA AND B.ColumnB = 1 )
WHERE       A.ColumnB = 3