2013-01-18 46 views
0

如果可能,我想返回另一列,其中包含找到該變量的列的名稱(CH1, CH2 or CH3)查找列名SQL

喜歡的東西:

v1 => ch3 

v2 => ch1 

這是我的查詢:

SELECT variable 
FROM Variables , Names 
WHERE (Variables.ID = Names.Ch1 or Variables.ID = Names.Ch2 or Variables.ID = Names.Ch3) 

我的表的格式:

Names(#ID,Ch2,Ch2,Ch3) 
Variables(#ID, variable,...) 

我試着用%columName%,但我得到一個錯誤。

+1

請發佈您收到的錯誤消息。 – Brian

+1

#1064 - 您的SQL語法錯誤;檢查相應的手冊... – Mils

回答

3

正確的語法更像是:

select v.*, 
     (case when v.id = n.ch1 then 'CH1' 
      when v.id = n.ch2 then 'CH2' 
      when v.id = n.ch3 then 'CH3' 
     end) as WhichColumn 
from variables v join 
    names n 
    on v.ID in (n.Ch1, n.ch2, n.ch3) 

換句話說,你必須明確地放在列名稱的邏輯。

+0

這就是我想要的!謝謝。 – Mils

0

嘗試使用一樣,如果變量ID是僅INT數

SELECT variable 
FROM Variables , Names 
WHERE 
(Variables.ID like '%Names.Ch1%' 
or Variables.ID like '%Names.Ch2%' 
or Variables.ID like '%Names.Ch3%')