0

如果可能,我想返回另一列,其中包含找到变量的列的名称(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%但我得到了一个错误。

4

2 回答 2

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)

换句话说,您必须明确地输入列名的逻辑。

于 2013-01-18T20:41:24.793 回答
0

如果变量 ID 不仅是 INT 数字,请尝试使用LIKE

SELECT variable
FROM Variables , Names
WHERE 
(Variables.ID like '%Names.Ch1%' 
or  Variables.ID  like '%Names.Ch2%' 
or Variables.ID like '%Names.Ch3%' )
于 2013-01-18T20:41:14.497 回答