sql - 如何比较同一列的值并返回真/假?
问题描述
我正在尝试构建一个查询,该查询将比较特定列的最后两个值,如果数字上升则返回 true,如果数字下降则返回 false。
如何使用 MS SQL 实现这一目标?
数据看起来像这样
门票:
71
72
73
74
75
所以说我想取最新的两个并比较它们,然后返回一个布尔值。可以实现吗?
解决方案
一种方法是单独获取每个并进行比较:
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。
推荐阅读
- python - 如何加载已经训练好的 XGBoost 模型以在新数据集上运行?
- android - 当我在 Android 中返回视频播放活动时出现黑屏
- javascript - 比较单个数组 javascript 中的值并操作数组
- facebook - 将随机 Facebook 页面授权给我的 Facebook 应用
- android - 使用导航架构组件时保存片段的回收器视图滚动状态
- cypress - 如何修复警告“赛普拉斯检测到您在测试中返回了一个承诺”
- python - 比较用户输入字典中的键:值关系
- c - C 中 ADT 列表迭代器的问题
- c# - 如何对 Web 按钮控件的文本进行动态字符串格式化?
- forms - Delphi DLL Modal Form 在第二次调用时导致 AV