首页 > 解决方案 > 如何获取表中两行之间的差异

问题描述

我有一个返回以下数据集的查询。

样本:

SELECT * 
FROM table_name 
WHERE rank_code IN (15, 22);

上述查询的输出给出了以下结果。

RANK_CODE RANK_DESC
3 15 XYZ
5 22 美国广播公司

现在,我想在单个查询中获得 Rank 的差异,即 5-3 = 2 或 3-5 = 2。只有区别。有没有办法使用 SQL 查询来实现相同的目的,以便我可以将排名代码作为输入参数传递。如果没有找到或无法获取任何行,最终结果将为 0。我们也可以进行这个小检查吗?任何帮助将不胜感激。

标签: sqloracleplsql

解决方案


SELECT coalesce(max(rank) - min(rank), 0)
FROM table_name 
WHERE rank_code IN (15, 22);

推荐阅读