TSQL案例或其中

时间:2014-10-20 14:22:03

标签: tsql

我的问题:

在我的WHERE语句中,“Shock.Comment”是无效的。 我想要实现的结果是参数

  

@missingComments = 1

然后我想得到所有字符串为空或者为空的Shocks。 我做了什么:

WHERE Shock.Comment = CASE WHEN @missingComments = 1 THEN '' OR IS NULL END

如何在

时获取评论= null或空的所有帖子
  

@missingComments = 1

2 个答案:

答案 0 :(得分:2)

这是一种方式:

WHERE (  (@missingComments != 1)
      OR (COALESCE(Shock.Comment, '') = '' )

请注意,使用单个静态SQL查询对此的任何答案都无法使用Shock.Comment上的任何索引来提高性能。

答案 1 :(得分:0)

CASE非常挑剔,无法评估为BIT,而您无法v = A OR B,您必须v = A OR v = B。这是我提出的解决方案。

WHERE @missingComment = 0 OR (Shock.Comment = NULL OR Shock.Comment = '')