关于Oracle根据累计值终止查询
作者:互联网
昨天有个朋友遇到一个问题:
单据根据创建时间倒序排序
累计单据金额等于或者超过1000时停止查询,返回查出来的数据
然后我提供了一个mysql的方式,但是他说他使用的是Oracle的数据库,尴尬!
Mysql的实现方法
模拟一个场景
通过序列号倒序排序
累计数字字段,当累计和大于等于100时停止查询
提供表数据如下:
这里通过over
函数实现逐行累计;
SELECT
T1.*
FROM
( SELECT ID, NUM, sum( NUM ) over ( ORDER BY "INDEX" DESC ) val, "INDEX" FROM "TEST_NUM" ) T1
WHERE
( T1.val - NUM ) < 100
查询结果如下:
这就完成了需求了。
标签:INDEX,倒序,累计,T1,终止,NUM,Oracle,查询 来源: https://blog.csdn.net/X_ABU/article/details/118966265