查找列名SQL



如果可能的话,我想返回另一列,其中包含找到变量的列的名称(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%' )

相关内容

  • 没有找到相关文章

最新更新