我有一个存储过程,它会返回一些记录。现在我想根据条件
更改记录显示的条件select * from table
WHERE cond1 = c1
AND cond2 = c2
基本上我想要一个像这样的结构
if(Val1= Val2) then
select * from table
WHERE cond1 = c1
AND cond2 = c2
AND cond3 = c3
else
select * from table
WHERE cond1 = c1
AND cond2 = c2
由于存储过程非常庞大且我无法进行太多更改,因此我只能使用if语句更改where条件。
答案 0 :(得分:3)
只需在where子句中包含条件:
select * from table
WHERE cond1 = c1
AND cond2 = c2
AND (Val1 <> Val2 OR cond3 = c3)
如果这种结构不断扩大 - 也许你正在使用不同的可能参数进行某种形式的搜索 - 值得阅读Erland Sommarskog的Dynamic Search conditions in T-SQL
答案 1 :(得分:0)
试试这个:
IF Val1 = Val2
BEGIN
END
ELSE
BEGIN
END