Обычно мне нужно получить данные из таблицы в некотором диапазоне; например, отдельную страницу для каждого результата поиска. В 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
но я знаю, что это плохой стиль. Итак, как запросить самую высокую производительность?
Эй, @Paul, это отличный пример! Спасибо. Является ли «ORDER BY NAME DESC» избыточным во внешнем запросе? – Beez 2014-01-08 16:27:01
возможно так, но я просто копирую его пример без таблицы tmp. Вместо этого можно использовать только DESC. – 2014-01-09 19:19:31