通常,我需要从某个范围的表中检索数据;例如,每个搜索结果都有一个单独的页面。在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