본문 바로가기
Database/Oracle

[Oracle/SQL] ORDER BY 절

by 챠챠12 2020. 4. 15.
 
SELECT 칼럼명 [ALIAS명]
FROM 테이블명
[WHERE 조건식]
[GRUOP BY 칼럼(Column) 이나 표현식]
[HAVING 그룹조건식]
[ORDER BY 칼럼(Column) 이나 표현식 [ASC 또는 DESC]];
 
  • ASC(Ascending)        : 오름차순
  • DESC(Descending)   : 내림차순

- Oracle에서는 NULL 값을 가장 큰 값으로 취급.

(ASC 경우에는 가장 마지막에 위치, DESC 경우에는 가장 먼저 위치)

- SQL Server에서는 NULL 값을 가장 작은 값으로 취급.

(ASC 경우에는 가장 먼저 위치, DESC 경우에는 가장 마지막에 위치)

 

ORDER BY 절에서 칼럼명 대신 ALIAS명이나 칼럼 순서를 나타내는 정수를 섞어서 사용 가능.

 

1. SELECT 문장 실행 순서

5. SELECT 1. FROM 

2. WHERE

3. GROUP BY

4. HAVING

6. ORDER BY

 

GROUP BY 절을 사용하는 경우 ORDER BY 절에 집계함수를 사용할 수 있다.

SELECT ID, NAME

FROM EMP

GROUP BY ID

HAVING SUM(SALARY) > 1000ORDER BY COUNT(*) ASC;// 정상적으로 출력된다.

 

 GROUP BY 절 사용시 SELECT 절에 일반 칼럼 사용

SELECT ID, NAME

FROM EMP

GROUP BY ID

HAVING SUM(SALARY) > 1000

ORDER BY NAME;     

// 잘못된 표현식이다.

 

 GRUOP BY 절 사용시 ORDER BY 절에 일반 칼럼 사용

SELECT ID, NAMEFROM EMPGROUP BY IDHAVING SUM(SALARY) > 1000ORDER BY GENDER
// 잘못된 표현식이다.

 

2. order by 1 이 무엇인가?

order by 1 이란 , 1 이란 테이블의 칼럼 번호 입니다.(칼럼 순서는 1부터 입니다.)즉, 첫번째 칼럼을 오름 차순 기준으로 정렬된 상태로 출력됩니다.

SELECT NAME, SALARY, SCORE

FROM EMP

ORDER BY 1;

EMP 테이블에서 NAME 칼럼 기준으로 오름차순 정렬을 뜻한다.

LIST

댓글