0

我有一个存储过程返回给我一些记录。现在我想根据条件更改显示记录的条件

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 条件。

4

2 回答 2

3

只需在 where 子句中包含条件:

select * from table
WHERE cond1 = c1
AND cond2 = c2
AND (Val1 <> Val2 OR cond3 = c3)

如果这种结构不断扩展——也许你正在使用不同的可能参数进行某种形式的搜索——值得阅读 Erland Sommarskog 的T-SQL 中的动态搜索条件

于 2012-12-18T07:29:01.947 回答
0

尝试这个:

IF Val1 = Val2 
BEGIN

END
ELSE
BEGIN

END
于 2012-12-18T07:15:30.113 回答