我是一名有用的助手,可以为您翻译文本。
但是当我添加时
我在Oracle中使用SQL语句遇到了一个大问题。我想选择按STORAGE_DB排序的前10个记录,并且这些记录不在另一个select语句的列表中。
对于所有记录,以下语句都可以正常工作:
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')
但是当我添加时
AND ROWNUM <= 10
ORDER BY STORAGE_GB DESC
我得到了一些“随机”的记录。我认为是因为限制在排序之前生效。
有人有好的解决方案吗?另一个问题:这个查询非常慢(10k+条记录)
FETCH NEXT N ROWS ONLY
的答案。 - Mohnish