Sql 在where条件下使用搜索的案例

Sql 在where条件下使用搜索的案例,sql,tsql,case,Sql,Tsql,Case,我最近得到了这个存储过程,它使用了一个名为@marketCode的变量。应用程序正在为此变量传递South或null 在我的select语句中,如果应用程序通过null,我希望检索除South之外的所有市场 and marketCode =! 'South' 如果应用程序传递一个非null值,那么我将使用该值 and marketCode = 'North' 我怎样才能把这两个结合在一起呢 AND marketCode = (case @marketCode when null then

我最近得到了这个存储过程,它使用了一个名为@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 )
和marketCode=(如果为空,则为case@marketCode
(完)

您应该能够在
条件下执行此操作:

...
AND (
    (@marketCode IS NULL AND marketCode <> 'South')
  OR
    (@marketCode IS NOT NULL AND marketCode = @marketCode)
)
。。。
及(
(@marketCode为NULL,marketCode为'South')
或
(@marketCode不为NULL,并且marketCode=@marketCode)
)