TSQL在哪里的情况

时间:2013-02-10 19:02:49

标签: sql sql-server tsql

我需要正确的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'

3 个答案:

答案 0 :(得分:5)

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

SQL Fiddle with demo

答案 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
      )