SQL CASE WHEN columnvalues = totalcolumnvalues +- 1
Posted
技术标签:
【中文标题】SQL CASE WHEN columnvalues = totalcolumnvalues +- 1【英文标题】: 【发布时间】:2021-12-27 09:44:41 【问题描述】:我需要一些帮助来确定如何在我的查询中执行加/减 1 范围。
我正在尝试制作类似下面的东西
SELECT
CASE WHEN (columnvalues1 + columnvalues2 + columnvalues3) = totalcolumnvalues +- 1 THEN 1 END AS flag
FROM table1
所以如果结果是 37,那么 36、37 或 38 将在 +-1 范围内,因此被标记
任何帮助将不胜感激
【问题讨论】:
【参考方案1】:假设总数是浮点数或小数,您可以简单地使用BETWEEN
子句:
CASE WHEN columnvalues1 + columnvalues2 + columnvalues3 BETWEEN
totalcolumnvalues - 1 AND totalcolumnvalues + 1
THEN ...
【讨论】:
感谢您的回答。正如我经常遇到的那样,答案比我最初想的要容易。您的第二个选项是我正在寻找的那个,因为它还允许浮点数在 +- 1 范围内工作【参考方案2】:使用 ABS:
CASE WHEN ABS( (columnvalues1 + columnvalues2 + columnvalues3) - totalcolumnvalues )<=1
THEN 1 END AS flag
【讨论】:
以上是关于SQL CASE WHEN columnvalues = totalcolumnvalues +- 1的主要内容,如果未能解决你的问题,请参考以下文章