Вычитка одной строки в запросе DB2 с указанием порядка

Не знаю, один ли я такой неуч, но, как оказалось, при вычитке одной строки в DB2'ом запросе можно указывать порядок - точно так же как и в случаем использования DB2 курсора.

Итак, ограничение по количеству записей устанавливается при помощи выражения:

FETCH FIRST 1 ROW ONLY

В данном случае вычитывается только первая строка из результирующего массива.

Для того, чтобы уменьшить время выполнения запроса и не блокировать таблицы можно добавить еще и:

WITH UR

где UR uncommitted read.

А перед указанным выражением можно использовать стандартный ORDER BY для указания порядка вычитки.

Для проформы приведу итоговый SQL запрос:

SELECT *
  FROM OWNER.TABLE
WHERE
  <CONDITION>
ORDER BY 
  <FIELD> <DIRECTION>
FETCH FIRST 1 ROW ONLY WITH UR

Обращаю Ваше внимание, что подобный запрос не будет возвращать код -811 в случае, если нашлось несколько записей, попадающих под условие. В этом случае будет возвращен SQL код 0 и первая запись.

Отправить комментарий

  • Доступны HTML теги: <b> <i> <u> <br> <hr> <div> <span> <code> <pre>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <pli>.

Подробнее о форматировании

  _____    ___  
|___ | ( _ )
/ / / _ \
/ / | (_) |
/_/ \___/
Enter the code depicted in ASCII art style.