この問題には正しい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'
この問題には正しい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'
select *
from [table]
where case when var_c = 'something' then var_a else var_b end = '10'
Ianはおそらく利用可能な最良の答えを持っていますが、それが役立つ場合に備えて、別の(ただし柔軟性は劣りますが)方法について別の答えを提供すると思いました。
IF var_c = 'something' BEGIN
SELECT * FROM [table] WHERE var_a = '10'
END
ELSE BEGIN
SELECT * FROM [table] WHERE var_b = '10'
END
これは、where句内でcaseステートメントを使用する方法です。
select * from table
where ( case when var_c = 'something'
then var_a
else
var_b
end
)