Какова цель Упорядочить по 1 в операторе выбора SQL?

Я просматриваю старый код на работе и заметил, что есть несколько представлений с порядком по 1 предложению . Что это дает?

Пример:

Create view v_payment_summary AS
SELECT A.PAYMENT_DATE,
       (SELECT SUM(paymentamount)
          FROM payment B
         WHERE PAYMENT_DATE = B.PAYMENT_DATE
           and SOME CONDITION) AS SUM_X,
       (SELECT SUM(paymentamount)
          FROM payment B
         WHERE PAYMENT_DATE = B.PAYMENT_DATE
           and SOME OTHER CONDITION) AS SUM_Y    
FROM payment A    
ORDER BY 1;
139
задан echo 25 July 2014 в 18:22
поделиться

5 ответов

Это:

ORDER BY 1

... известно как «Порядковый номер» - номер обозначает столбец на основе количества столбцов, определенных в предложении SELECT. В предоставленном вами запросе это означает:

ORDER BY A.PAYMENT_DATE

Это не рекомендуется, потому что:

  1. Это не очевидно / явно
  2. Если порядок столбцов изменяется, запрос все еще действителен, поэтому вы рискуете упорядочить то, что вы не сделали не собираюсь
179
ответ дан 23 November 2019 в 23:21
поделиться

Я считаю, что в Oracle это означает порядок по столбцу №1

7
ответ дан 23 November 2019 в 23:21
поделиться

Это полезно, когда вы используете операторы на основе наборов, например union

select cola
  from tablea
union
select colb
  from tableb
order by 1;
37
ответ дан 23 November 2019 в 23:21
поделиться

Результаты будут отсортированы по первому возвращенному столбцу. В примере это будет сортировка по payment_date.

6
ответ дан 23 November 2019 в 23:21
поделиться

См. Также:

http://www.techonthenet.com/sql/order_by.php

Описание порядка по. Я кое-что узнал! :)

Я также использовал это в прошлом, когда хотел добавить неопределенное количество фильтров в оператор sql. Я знаю небрежно, но это сработало. : P

0
ответ дан 23 November 2019 в 23:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: