"PHP" / Говнокод #8088 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
К сожалению и к моему большому удивлению в Оракле нет такого полезного оператора LIMIT, который есть в MySQL. Аналогом ему в оракле служит псевдо-колонка rownum, которая отображает номер выбираемой записи по ходу выборки.

Итак, есть такой вот простенький sql запрос для Oracle

SELECT * FROM T WHERE ROWNUM BETWEEN 2 AND 20


который по мнению автора выберет 19 строк, начиная с 2 и заканчивая 20-й.
Вопрос знатокам: Будет ли такой вопрос выводить требуемые записи? Вроде как будет… Но раз этот пост в разделе говнокод, то надо подумать ещё.

Думаем. Когда у нас выберется первая запись по нашему запросу? Когда rownum будет 2. А когда rownum будет 2? После того как выберется первая запись. Из всего этого делаем однозначный вывод — не выберется ни одной записи.

Запостил: andrei199614 andrei199614, (Updated )

Комментарии (9) RSS

  • И что здесь удивительного? Если не знаете таких тонкостей оракла, то нечего писать на нем, переходите на mysql.
    Ответить
  • > Думаем. Когда у нас выберется первая запись по нашему запросу? Когда rownum будет 2. А когда rownum будет 2? После того как выберется первая запись. Из всего этого делаем однозначный вывод — не выберется ни одной записи.

    Вместо думания почитайте как SQLы выполняются на оракакале сначала. (И вообще в ACID RDBMS.) РэТэФэМэ, так сказать.

    И вообще, много думать вредно. Завязывайте с этой дурной привычкой.
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8