직장에서 오래된 코드를 읽고 있는데 order by 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
… “Ordinal”이라고합니다.이 숫자는 SELECT 절에 정의 된 열 수를 기준으로 한 열을 나타냅니다. 제공 한 쿼리에서 다음을 의미합니다.
ORDER BY A.PAYMENT_DATE
다음과 같은 이유로 권장되지 않습니다.
- 명확하지 않거나 명시 적이 지 않다
- 열 순서가 변경 되어도 쿼리는 여전히 유효하므로 의도하지 않은 순서로 정렬 할 위험이 있습니다.
답변
집합 기반 연산자 (예 : 공용체)를 사용할 때 유용합니다
select cola
from tablea
union
select colb
from tableb
order by 1;
답변
단순히 쿼리 결과의 첫 번째 열로 뷰 또는 테이블을 정렬하는 것을 의미합니다.
답변
나는 Oracle을 믿는다.
답변
결과가 반환 된 첫 번째 열을 기준으로 정렬됩니다. 이 예에서는 payment_date를 기준으로 정렬합니다.
답변
다른 답변에서 언급했듯이 ORDER BY 1
첫 번째 열의 주문.
나는 당신이 그것을 사용할 수있는 또 다른 예를 보았습니다. 동일한 열을 선택하도록 주문해야하는 특정 쿼리가 있습니다. Name
아래에서 주문하면 SQL 오류가 발생 합니다.
SELECT Name, Name FROM Segment ORDER BY 1
답변
참조 :
http://www.techonthenet.com/sql/order_by.php
주문 설명. 나는 무언가를 배웠다! 🙂
또한 과거에 SQL 문에 알 수없는 필터 수를 추가하고 싶을 때 이것을 사용했습니다. 조잡하지만 알았습니다. :피
