在存储过程中,假设我有一个标记,可以是 0 或 1
如果 1 ,那么我想要select * from table A where name = 'blah'
如果 0 ,那么我想要select * from table A where name = blah and age = 13
。
我可以将and age = 13
添加到存储过程查询吗?
这就是我目前所拥有的。
IF @flag = 1
SELECT * from A where name = 'blah'
ELSE
SELECT * from A where name = 'blah' and age = 13
我想知道查询变得非常长的情况,因此复制和粘贴ELSE
案例的更多内容非常低效。
感谢。
答案 0 :(得分:3)
SELECT * from A
where name = 'blah'
and (@flag = 1 or age = 13)
答案 1 :(得分:1)
您还可以使用Case statement
;
Select * from A
Where Name = 'blah' And Age = Case @flag when 1 then Age else 13 end