[SQL] ORDER BY

hyunsooSong·2022년 5월 22일
0

SQL

목록 보기
2/14
post-thumbnail

📈 ORDER BY, 정렬

1. ORDER BY절에 대한 기본 지식

  1. ORDER BY는 SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 컬럼을 기준으로 정렬하는데 사용한다.
  2. NULL 값에 대한 정렬 순서
    • SQL Server : NULL 값을 가장 작은 값으로 간주하여 오름차순 정렬 시 가장 먼저 위치한다.
    • ORACLE : NULL 값을 가장 큰 값으로 간주하여 오름차순 정렬 시
      가장 마지막에 위치한다.
  3. ORDER BY 절에서 컬럼명 대신 Alias 명이나 컬럼 순서를 나타내는 정수를 혼용하여 사용 할 수 있다.
  4. GROUP BY를 사용 할 경우 ORDER BY절에서 집계 함수 사용이 가능하다.

2. ORDER BY 1, 2

✅ ORDER BY 1, 2에서 1, 2는 컬럼의 순서를 의미한다. 즉, 첫번째 컬럼으로 정렬 후 2번째 컬럼으로 정렬한다는 뜻이다.

SELECT ID, AMT
FROM TBL
ORDER BY 1, 2 DESC;

💡 아래의 SQL의 경우는 조금 다르다. ID, AMT 순으로 정렬을 하되, ID가 'A'이면 1번째로 정렬한다.

[ TBL ]

ID (PK)AMT
A50
A200
B300
C100

[ result ]

ID (PK)AMT
A200
A50
B300
C100

SELECT ID, AMT
FROM TBL
ORDER BY ( CASE WHEN ID = 'A' THEN 1 ELSE 2 END )
               , AMT DESC;


3. TOP(K) WITH TIES

✅ 상위 K개의 ROW를 SELECT하기 위한 함수이다. 'WITH TIES' 를 사용하면 동일 값을 함께 출력할 수 있다.

[ 팀별성적 ]

팀명 (PK)승리건수
A5
B3
C8
D5

[ result ]

팀명 (PK)승리건수
C8
A5
D5

SELECT TOP(2) WITH TIES 팀명, 승리건수
FROM 팀별성적
ORDER BY 승리건수 DESC;



+ 👀 틈새 지식

✅ DBMS 옵티마이저는 FROM 절에 나열된 테이블에서 항상 2개의 테이블씩 짝을 지어 JOIN을 수행한다.

profile
🥕 개발 공부 중 🥕

0개의 댓글