4

この問題には正しいtsql構文が必要です:

Select * from table where var_A='10'
select * from table where var_B='10'

var_Aまたはvar_Bをいつ使用するかは、var_Cの値によって異なります。

したがって、elseをvar_c='something'使用する場合var_A='10'var_B='10'

4

3 に答える 3

5
select *
from [table]
where case when var_c = 'something' then var_a else var_b end = '10'

デモ付きのSQLフィドル

于 2013-02-10T19:07:46.633 に答える
2

Ianはおそらく利用可能な最良の答えを持っていますが、それが役立つ場合に備えて、別の(ただし柔軟性は劣りますが)方法について別の答えを提供すると思いました。

IF var_c = 'something' BEGIN
    SELECT * FROM [table] WHERE var_a = '10'
END
ELSE BEGIN
    SELECT * FROM [table] WHERE var_b = '10'
END
于 2013-02-11T03:10:00.077 に答える
0

これは、where句内でcaseステートメントを使用する方法です。

select * from table
where ( case when var_c = 'something' 
        then var_a
        else 
            var_b
        end
      )
于 2013-02-11T04:18:10.567 に答える