SQL CASE WHEN columnvalues = totalcolumnvalues +- 1

SQL CASE WHEN columnvalues = totalcolumnvalues +- 1

我需要一些帮助来弄清楚如何在我的查询中执行 plus/minus 1 个范围。

我正在尝试使类似下面的东西工作

SELECT 

CASE WHEN (columnvalues1 + columnvalues2 + columnvalues3) = totalcolumnvalues +- 1 THEN 1 END AS flag

FROM table1

因此,如果结果为 37,则 36、37 或 38 将在 +- 1 范围内并因此被标记

如有任何帮助,我们将不胜感激

使用 ABS:

CASE WHEN ABS( (columnvalues1 + columnvalues2 + columnvalues3) - totalcolumnvalues )<=1
  THEN 1 END AS flag

假设总数是浮点数或小数,您可以简单地使用 BETWEEN 子句:

CASE WHEN columnvalues1 + columnvalues2 + columnvalues3 BETWEEN
    totalcolumnvalues - 1 AND totalcolumnvalues + 1
THEN ...