1. ORDER BY 정렬

칼럼명, SELECT 별명, 또는 순서로 정리 (혼용사용도 가능)

 

SELECT 칼럼명 [ALIAS명]

FROM 테이블명

[WHERE 조건식]

[GROUP BY 칼럼(Column)이나 표현식]

[HAVING 그룹조건식]

[ORDER BY 칼럼(Column)이나 표현식 [ASC 또는 DESC]] ;

 

ASC(Ascending) : 조회한 데이터를 오름차순으로 정렬한다.(기본 값이므로 생략 가능)

DESC(Descending) : 조회한 데이터를 내림차순으로 정렬한다.

 

ORACLE       : 내림차순에서는 NULL값이 앞에 출력, 오름차순에서는 NULL값이 뒤에 출력

SQL SERVER : 내림차순에는 NULL값이 뒤에 출력, 오름차순에는 NULL값이 앞에 출력

 

기본적인 정렬 순서는 오름차순 (숫자형일 경우는 가장 작은 값부터, 날짜형은 가장 빠른 날짜부터)

 

2. SELECT 문장의 실행 순서

 

5. SELECT 칼럼명 [ALIAS명]

1. FROM 테이블명

2. WHERE 조건식

3. GROUP BY 칼럼(Column)이나 표현식

4. HAVING 그룹조건식

6. ORDER BY 칼럼(Column)이나 표현식;

 

1. 발췌 대상 테이블을 참조한다. (FROM)

2. 발췌 대상 데이터가 아닌 것은 제거한다. (WHERE)

3. 행들을 소그룹화 한다. (GROUP BY)

4. 그룹핑된 값의 조건에 맞는 것만을 출력한다. (HAVING)

5. 데이터 값을 출력/계산한다. (SELECT)

6. 데이터를 정렬한다. (ORDER BY)

 

ORDER BY 절에서는 SELECT 목록에 없는 문자형 항목 포함 가능

, SELECT DISTINCT 지정하더거나 GROUP BY , UNION 연산자 있다면 SELECT 목록에 표시 되어야함

예제) SELECT EMPNO, ENAME FROM EMP ORDER BY MGR;

인라인 뷰의 SELECT 절에서 정의한 칼럼은 메인쿼리에서도 사용 가능 그러나 서브쿼리 범위를 벗어나면 이상 사용 불가

GROUP BY 이후 SELECT ORDER BY 절에서는 개별 데이터 사용 불가

SELECT 절에서 정의하지 않은 MAX, SUM, COUNT 집계 함수도 ORDER BY에서는 사용 가능

예제) SELECT JOB

FROM EMP

GROUP BY JOB

HAVING COUNT(*) > 0

ORDER BY MAX(EMPNO), MAX(MGR), SUM(SAL), COUNT(DEPTNO), MAX(HIREDATE);

 

3. TOP N 쿼리

 

. ROWNUM

ORACLE 순위가 높은 N개의 로우를 추출하기 위해 WHERE절에서 ROWNUM 함수 사용

, 원하는 데이터를 원할 없음 데이터 일부가 먼저 추출된 정렬작업이 일어남, ORDER BY 효과가 없음

인라인 뷰로 먼저 데이터 정렬 사용 가능, 인덱스로 추출가능

 

. TOP ( )

SQL SERVER TOP 조건을 사용하여 사용 가능

TOP (Expression) [PERCENT] [WITH TIES]

WITH TIES : 마지막 행으로 표시되는 추가 행의 데이터가 같을 경우 N+ 동일 정렬 순서를 추가 반환 하도록 지정된 옵션


'자격증 공방 > SQLD' 카테고리의 다른 글

제 4-1절 표준 조인  (0) 2018.07.11
제 3-9절 조인(JOIN)  (0) 2018.07.07
제 3-7절 GROUP BY, HAVING 절  (0) 2018.07.07
제 3-6절 함수  (0) 2018.07.07
제 3-5절 WHERE 절  (0) 2018.07.07

+ Recent posts