我需要正确的tsql语法来解决这个问题:
Select * from table where var_A='10'
select * from table where var_B='10'
何时使用var_A或var_B取决于var_C
的值所以当var_c='something'
使用var_A='10'
其他var_B='10'
答案 0 :(得分:5)
select *
from [table]
where case when var_c = 'something' then var_a else var_b end = '10'
答案 1 :(得分:2)
伊恩可能有最好的答案,但我认为如果有所帮助,我会为另一种(虽然不太灵活)的方法提供另一个答案:
IF var_c = 'something' BEGIN
SELECT * FROM [table] WHERE var_a = '10'
END
ELSE BEGIN
SELECT * FROM [table] WHERE var_b = '10'
END
答案 2 :(得分:0)
这是如何在where子句中使用case语句的。
select * from table
where ( case when var_c = 'something'
then var_a
else
var_b
end
)