通常,我需要從某個範圍的表中檢索數據;例如,每個搜索結果都有一個單獨的頁面。在MySQL中,我使用LIMIT關鍵字,但在DB2中我不知道。現在我使用這個查詢來檢索數據範圍。如何以最高性能查詢DB2中的數據範圍?
SELECT *
FROM(
SELECT
SMALLINT(RANK() OVER(ORDER BY NAME DESC)) AS RUNNING_NO
, DATA_KEY_VALUE
, SHOW_PRIORITY
FROM
EMPLOYEE
WHERE
NAME LIKE 'DEL%'
ORDER BY
NAME DESC
FETCH FIRST 20 ROWS ONLY
) AS TMP
ORDER BY
TMP.RUNNING_NO ASC
FETCH FIRST 10 ROWS ONLY
但我知道這是不好的風格。那麼,如何查詢最高性能?
嘿,@保羅,這是一個很好的例子!謝謝。外部查詢中'ORDER BY NAME DESC`是多餘的嗎? – Beez 2014-01-08 16:27:01
可能是這樣,但我只是在沒有tmp表的情況下複製他的示例。可以改用DESC代替。 – 2014-01-09 19:19:31