对于这个问题,我需要正确的 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'
elsevar_B='10'
对于这个问题,我需要正确的 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'
elsevar_B='10'
select *
from [table]
where case when var_c = 'something' then var_a else var_b end = '10'
伊恩可能有最好的答案,但我想我会为不同的(虽然不太灵活)方法提供另一个答案,以防万一:
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
)