2016-11-19 61 views
0

我有一個地圖作爲輸入,並希望在sql where子句中使用該映射。 實施例, 我有這樣的表數據,如何編寫一個從關聯數組輸入中獲取多個where子句的SQL語句?

ColA ColB ColC 
--------------- 
A 1 abc 
B 2 xyz 
C 3 jkf 
A 3 asf 
B 4 dfa 

,我已經映射爲{A-> 1,B-> 2}

現在我想火查詢等,

SELECT * from TABLE where KEY = map{key} 

,但我不知道我可以用我在上面的查詢地圖,我不想多次調用此查詢。

我可以不喜歡它,在地圖中 關鍵:

select * from table where key = map[key] 

,但要做到這一點在一個數據庫調用。 預期的結果是

ColA ColB ColC 
--------------- 
A 1 abc 
B 2 xyz 
+0

'SELECT * FROM表T加入映像M M上.key = t.key'?你的問題不是很清楚。 – artm

+0

添加預期結果 –

回答

0

使用地圖建立table valued constructor

select * 
from (values ('A',1),('B',2)) tc (Col1A,ColB) 

現在,您可以加入上述結果與你的表

SELECT * 
FROM Yourtable Y 
     JOIN (VALUES ('A',1), 
        ('B',2)) tc (Col1A, ColB) 
     ON Y.Col1A = Tc.Col1A 
      AND Y.Col1B = Tc.Col1B 
相關問題