Я просматриваю старый код на работе и заметил, что есть несколько представлений с порядком по 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;
Это:
ORDER BY 1
... известно как «Порядковый номер» - номер обозначает столбец на основе количества столбцов, определенных в предложении SELECT. В предоставленном вами запросе это означает:
ORDER BY A.PAYMENT_DATE
Это не рекомендуется, потому что:
Я считаю, что в Oracle это означает порядок по столбцу №1
Это полезно, когда вы используете операторы на основе наборов, например union
select cola
from tablea
union
select colb
from tableb
order by 1;
Результаты будут отсортированы по первому возвращенному столбцу. В примере это будет сортировка по payment_date.
См. Также:
http://www.techonthenet.com/sql/order_by.php
Описание порядка по. Я кое-что узнал! :)
Я также использовал это в прошлом, когда хотел добавить неопределенное количество фильтров в оператор sql. Я знаю небрежно, но это сработало. : P