我有一个包含许多条件的存储过程,但其中一个取决于我的一个参数的值。 目前我正在使用if语句和重复查询,我想改进但我找不到其他方法。一些想法如何
MyStoreProcedure Code
If @paramstate = 'All'
Select mytable.field1, mytable.field2, mytable.field3, mytable.field4,mytable.field5
from mytable
Where mytable.field6 is null
and mytable.field1 is not null
Else
Select mytable.field1, mytable.field2, mytable.field3, mytable.field4,mytable.field5
from mytable
Where mytable.field6 is null
and mytable.field1 is not null
and mytable.state = @paramstate
End
我该如何改进?
答案 0 :(得分:1)
我认为这消除了对if / else的需要,但要注意可能不高效
Select mytable.field1, mytable.field2, mytable.field3, mytable.field4,mytable.field5
from mytable
Where mytable.field6 is null
and mytable.field1 is not null
and (mytable.state = @paramstate or @paramstate = 'All')