[sql] SQL select 문에서 Order By 1의 목적은 무엇입니까?

직장에서 오래된 코드를 읽고 있는데 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

다음과 같은 이유로 권장되지 않습니다.

  1. 명확하지 않거나 명시 적이 지 않다
  2. 열 순서가 변경 되어도 쿼리는 여전히 유효하므로 의도하지 않은 순서로 정렬 할 위험이 있습니다.

답변

집합 기반 연산자 (예 : 공용체)를 사용할 때 유용합니다

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 문에 알 수없는 필터 수를 추가하고 싶을 때 이것을 사용했습니다. 조잡하지만 알았습니다. :피