条件查询

时间:2011-10-28 00:48:43

标签: sql-server-2008

我有一个包含许多条件的存储过程,但其中一个取决于我的一个参数的值。 目前我正在使用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

我该如何改进?

1 个答案:

答案 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')