首页 > 解决方案 > 如何比较同一列的值并返回真/假?

问题描述

我正在尝试构建一个查询,该查询将比较特定列的最后两个值,如果数字上升则返回 true,如果数字下降则返回 false。

如何使用 MS SQL 实现这一目标?

数据看起来像这样

门票:

71

72

73

74

75

所以说我想取最新的两个并比较它们,然后返回一个布尔值。可以实现吗?

标签: sqlsql-serverboolean

解决方案


一种方法是单独获取每个并进行比较:

select (case when last_but_one.ticket < last_one.ticket then 'less than'
             when last_but_one.ticket = last_one.ticket then 'equal'
             when last_but_one.ticket > last_one.ticket then 'greater than'
        end)
from (select t.*
      from t
      order by ord desc
      offset 0 row fetch first 1 row only
     ) last_one cross join
     (select t.*
      from t
      order by ord desc
      offset 1 row fetch first 1 row only
     ) last_but_one;

是一个 db<>fiddle。


推荐阅读