如果可能的话,我想返回另一列,其中包含找到变量的列的名称(CH1, CH2 or CH3)
。
例如:
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%
,但我得到一个错误。
正确的语法应该是:
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)
换句话说,必须显式地为列名添加逻辑。
尝试使用LIKE如果变量ID 不是只有INT number
SELECT variable
FROM Variables , Names
WHERE
(Variables.ID like '%Names.Ch1%'
or Variables.ID like '%Names.Ch2%'
or Variables.ID like '%Names.Ch3%' )