在条件中使用搜索的案例

时间:2014-11-04 22:00:59

标签: sql tsql case

我最近得到了这个存储过程,它使用了一个名为@marketCode的变量。对于此变量,应用程序传递South或null。

在我的select语句中,如果应用程序传递null,我想检索除South以外的所有市场。

and marketCode =! 'South'

如果应用程序传递非null值,那么我将使用该值。

and marketCode = 'North'

如何将这两者合并为一个案例?

 AND marketCode = (case @marketCode when null then <..not equal to 'South'..>
                                            else <..equal to 'South'..> end )

1 个答案:

答案 0 :(得分:1)

您应该可以使用OR条件执行此操作:

...
AND (
    (@marketCode IS NULL AND marketCode <> 'South')
  OR
    (@marketCode IS NOT NULL AND marketCode = @marketCode)
)