1. PHP / Говнокод #8088

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 04 Октября 2011

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

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

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

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

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