[英]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.