2013-02-10 64 views
3

我需要正確的T-SQL語法這一問題: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

考慮更改表格的佈局。你的問題表明一個沉重的設計缺陷。你介意展示你的餐桌設計還是解釋餐桌所包含的內容? – alzaimar 2013-02-10 21:10:01

回答

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

SQL Fiddle with demo

+0

嗨伊恩,謝謝它工作正常 – user1723982 2013-02-11 10:02:22

2

伊恩大概有可用的最好的答案,但我想我會提供另一個答案的不同(雖然不太靈活)方法的情況下,它可以幫助:你如何使用where子句中的case語句

IF var_c = 'something' BEGIN 
    SELECT * FROM [table] WHERE var_a = '10' 
END 
ELSE BEGIN 
    SELECT * FROM [table] WHERE var_b = '10' 
END 
0

此。

select * from table 
where (case when var_c = 'something' 
     then var_a 
     else 
      var_b 
     end 
    )