2012-05-03 76 views
1

我只查看一個表,我有我需要匹配的值,所以。SQL,匹配列b中的所有值,並返回列匹配的那些匹配

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

所以我傳遞的值是1和3,我會想返回1和4

我試過一組由一個可能,在這裏我不得不使用兩個子查詢,但它不起作用。

編輯:理想情況下,我想使用選擇查詢,因爲我需要在另一個查詢內使用此查詢,我建立了外部的SQL Server。

EDIT2:理想情況下,我想在我的輸入通過爲CSV字符串

+0

我不明白。爲什麼1和3會返回1和4? –

+0

什麼是您的輸入和輸出標準。請提供更多解釋。 –

+1

輸入的標準將是'where col_B IN(1,3)'和輸出將是'select Col_A' – Jules

回答

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

爲什麼你在那裏有'HAVING'語句:/ –

+0

+1這似乎是正確的答案 –

+1

@StuartBlackler:因爲沒有它,它會返回所有有* ** **的ColA, 1'或'3'作爲值,但OP需要ColA和** **兩個** –

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 
+0

但是,我可以通過多個輸入值:( – Jules

+0

)您如何傳遞值?可以你提供了一些代碼? – weenoid