繁体   English   中英

如何使用 BETWEEN 和 OR 来使用 SQL Case Expression?

[英]How to use SQL Case Expression using BETWEEN and OR?

我正在尝试使用案例表达式来查找介于 -.49 和 -.01 之间或介于 .50 和.01 之间的总支出。

这是我尝试过的:

CASE WHEN IsNull(FYExpend.TotalExpenditures,0) Between -.49 AND -.01
          OR IsNull(FYExpend.TotalExpenditures,0) Between .50 AND .01
     THEN 'True' ELSE 'False' END AS 'IsImmaterial'

第二部分没有正确评估,因为我在 .50 和 .01 之间有许多记录返回为 false。 基于我读过的所有内容,这种语法应该有效。 我在这里没有发现任何关于在同一语句中使用 BETWEEN 和 OR 的问题。 如果有相关问题,请告诉我。

有谁知道为什么这不起作用?

第二种情况的间隔值是错误的:

CASE 
    WHEN FYExpend.TotalExpenditures,0 Between -0.49 AND -0.01
    OR IsNull(FYExpend.TotalExpenditures,0) Between 0.01 AND 0.50
 THEN 'True' ELSE 'False' END AS IsImmaterial

笔记:

  • 你不需要ISNULL ,因为0无论如何都不属于任何寻求的间隔

  • 列别名不应用单引号引起来

使用简单的 boolean 逻辑:

(case when FYExpend.TotalExpenditures between -0.49 and -0.01 or
           FYExpend.TotalExpenditures,0) Between 0.01 and 0.50 
      then 'True' ELSE 'False'
 end) as IsImmaterial

NULL值在此逻辑和您的逻辑中都是“假”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM