T-SQL CASE WHEN语句之间不起作用

彼得3

所以我被困在我的声明中。每个个案在where子句中运行都很好,但是当我尝试将其包装起来时,它就对我不利。在when语句中使用between语句是否存在问题?下面是代码。如果有什么想法请分享!

英文的逻辑是在ssrs表单上有一个复选框。所以box可以是1或0,根据值,我将执行where语句。

WHERE (CASE @box
WHEN 1 THEN (CheckReg.CheckDate BETWEEN @ChkStartDate and @ChkEndDate OR CheckReg.CheckDate IS NULL) 
ELSE 0 THEN (CheckReg.CheckDate BETWEEN @ChkStartDate and @ChkEndDate OR CheckReg.CheckDate IS NULL 
AND NOT  CheckReg.CheckDate IS NULL AND CheckReg.CheckDate IS NOT NULL)
END)

另外,如果有人知道更好的解决方案,那么请根据我的逻辑告诉我。我正在使用Microsoft sql服务器

卢卡斯·索兹达(Lukasz Szozda)

您需要使用 OR

WHERE
  (@box = 1 AND (CheckReg.CheckDate BETWEEN @ChkStartDate and @ChkEndDate OR CheckReg.CheckDate IS NULL))
  OR
  (@box = 0 AND (CheckReg.CheckDate BETWEEN @ChkStartDate and @ChkEndDate OR CheckReg.CheckDate IS NULL 
                AND NOT CheckReg.CheckDate IS NULL AND CheckReg.CheckDate IS NOT NULL))

或者您可以WHEN部分组合条件并与进行比较THEN

WHERE 
   (CASE
     WHEN @box = 1 AND (CheckReg.CheckDate BETWEEN @ChkStartDate and @ChkEndDate OR CheckReg.CheckDate IS NULL)
     THEN 1
     WHEN @box = 0 AND (CheckReg.CheckDate BETWEEN @ChkStartDate and @ChkEndDate OR CheckReg.CheckDate IS NULL 
                        AND NOT CheckReg.CheckDate IS NULL AND CheckReg.CheckDate IS NOT NULL)
     THEN 1
     ELSE 0
   END
  ) = 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL 中的 CASE 语句不起作用

来自分类Dev

Microsoft SQL Case 语句在 Order By 语句中不起作用

来自分类Dev

SQL UPDATE和CASE语句不起作用

来自分类Dev

Redshift SQL Case语句和WHERE子句不起作用

来自分类Dev

SQL CASE 语句设置列值不起作用

来自分类Dev

T SQL CAST CASE语句

来自分类Dev

SQL Server:用其他字符串替换字符串的“Case When”语句不起作用

来自分类Dev

与CASE语句的内部联接在SQL SERVER中不起作用

来自分类Dev

SQL:为什么“ Case When”在我的代码中不起作用?

来自分类Dev

Oracle Case语句不起作用

来自分类Dev

从CASE语句或T-SQL中的Function获得更好的性能

来自分类Dev

T / SQL查询中end = 1的Case语句

来自分类Dev

T-SQL CASE语句返回不同的过滤器

来自分类Dev

从CASE语句或T-SQL中的Function获得更好的性能

来自分类Dev

Case语句T-SQL内部的复杂层次遍历

来自分类Dev

SQL嵌套CASE WHEN语句

来自分类Dev

使用日期之间的WHERE子句中的T-SQL CASE

来自分类Dev

sql case语句或if语句

来自分类Dev

T-SQL中的count CASE WHEN和count(*)冲突

来自分类Dev

大于SQL CASE语句

来自分类Dev

SQL Case语句(理解)

来自分类Dev

SQL中的case语句?

来自分类Dev

SQL嵌套CASE语句

来自分类Dev

SQL CASE语句问题

来自分类Dev

CASE 语句的 SQL 查询

来自分类Dev

SQL Case 语句问题

来自分类Dev

SQL CASE WHEN或IF ELSE IF

来自分类Dev

WHEN内的SQL Case

来自分类Dev

PHP更新SQL语句不起作用