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 に答える