1. SQL / Говнокод #4155

    −854

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    SELECT * FROM table ORDER BY price DESC
    
    будет
    
    товар1 - 0 руб
    товар2 - 10 руб
    товар3 - 20 руб
    товар4 - 30 руб
    
    а как сделать так, чтобы было
    
    товар2 - 10 руб
    товар3 - 20 руб
    товар4 - 30 руб
    товар1 - 0 руб
    
    ?

    Запостил: AntiMandron, 02 Сентября 2010

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

    • Не то место.
      Ответить
      • а надо в школу! учиться, учиться, еще раз учиться!
        а то понабежали...
        Ответить
    • SELECT * FROM table ORDER BY case price when 0 then null else price end DESC nulls last

      если в поле price могут быть null и их надо отсадить отдельно, то можно добавить в конец
      , price nulls last
      Ответить
    • SELECT * FROM table ORDER BY (case when price = 0 then null else price end) nulls last;

      Или если есть команда decode в СУБД:

      SELECT * FROM table ORDER BY decode(price, 0, null, price) nulls last;
      Ответить
    • Да, кстати.
      SELECT * FROM table ORDER BY price DESC
      НЕ будет
      товар1 - 0 руб
      товар2 - 10 руб
      товар3 - 20 руб
      товар4 - 30 руб

      будет наоборот.
      Ответить

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