oracle取前n条记录top,sql – Oracle:获取前n条记录的优雅方式(top-k查询)

我认为你的解决方案没问题. Oracle的唯一其他解决方案是使用row_number()分析函数,但这使它不那么优雅.其他数据库具有TOP 1语句,但是当您使用ORDER BY时,在子查询之外没有其他Oracle等效于ROWNUM.我同意使用WITH使其更具可读性.以下可能写得更快,但我不确定它是否更优雅.也许是品味问题:

SELECT * FROM

( SELECT WKFC_CRONOLOGIA_ID

FROM SIUWKF.WKF_CRONOLOGIA c

WHERE Ogg_oggetto_id = vOGG_ID

AND TOG_TIPO_OGGETTO_ID = vTOG

AND C.WKFC_DATA_FIN = TO_DATE ('31/12/9999', 'DD/MM/YYYY')

AND Wkfc_Tipo = 'STATO'

ORDER BY WKFC_DATA_INI DESC)

WHERE ROWNUM = 1

这就是Oracle SQL手册中关于ROWNUM和前N个报告的内容,并确认了您的方法.

源Oracle®数据库SQL语言参考11g第2版(11.2)E26088-01

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值