微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于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

查询结果如下:

在这里插入图片描述

这就完成了需求了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐