oracle 查询top10,Oracle SELECT TOP 10条记录

本文探讨了如何在Oracle SQL查询中使用子查询来过滤结果,并提到了ROWNUM和RANK()函数在获取前N个结果时的应用。建议用NOT EXISTS替换NOT IN以提升查询性能,特别是当处理大量数据时。
摘要由CSDN通过智能技术生成

87fefaf7b1a4fcaa1358e300c92e61d7.png

Qyouu

您需要将当前查询放在子查询中,如下所示:SELECT * FROM (

  SELECT DISTINCT 

  APP_ID, 

  NAME, 

  STORAGE_GB, 

  HISTORY_CREATED, 

  TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') AS HISTORY_DATE  

  FROM HISTORY WHERE 

    STORAGE_GB IS NOT NULL AND 

      APP_ID NOT IN (SELECT APP_ID FROM HISTORY WHERE TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') ='06.02.2009')

  ORDER BY STORAGE_GB DESC )WHERE ROWNUM <= 10Oracle 在返回结果后将rownum应用于结果。您需要在返回结果后过滤结果,因此需要子查询。您还可以使用RANK()函数获取前N个结果。 为了性能尝试使用NOT EXISTS代替NOT IN。见这更多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值