1. ORDER BY 정렬
개념
SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 칼럼을 기준으로 정렬하여 출력하는데 사용
칼럼명, 앨리어스, 칼럼의 Select 절 순으로 칼럼 지정가능
특징
기본적으로 정렬순서는 오름차순
숫자형/날짜형을 오름차순으로 정렬했을 경우, 가장 작은 값/ 가장 빠른 값 먼저 출력
NULL 값 오름 차순 정렬 시 Oracle은 가장 마지막에 위치(NULL은 가장 큰 값으로 간주)하지만, SQL에서는 가장 먼저 위치(NULL은 가장 작은 값으로 간주)
종류
ASC(Ascending): 조회한 데이터 오름차순
DESC(Descending): 조회한 데이터 내림차순
2. SELECT 문장 실행 순서
SELECT 문 설명
테이블에서 출력 대상이 아닌 것은 제거하고 그룹핑해서 그룹핑된 값이 조건에 맞는 데이터를 계산 및 출력하고 정렬함
실행 순서
SELECT 칼럼명 AS “별명” - ⑤ 계산 및 출력하고
FROM 테이블명 - ① 테이블에서
WHERE 조건식 - ② 출력 대상이 아닌 것은 제거하고
GROUP BY 칼럼/표현식 - ③ 그룹핑해서
HAVING 조건식 - ④ 그룹핑된 값이 조건에 맞는 데이터를
ORDER BY 칼럼/표현식 - ⑥ 정렬함
SELECT 문 작성시 주의할 점
옵티마이저가 SQL 문장의 SYNTAX, SEMANTIC 에러를 점검하는 순서이기도 함
FROM 절에 정의되지 않은 칼럼을 WHERE 절, GROUP BY 절, HAVING 절, SELECT 절, ORDER BY 절에 사용하면 에러 발생 (ORDER BY 절에는 SELECT 목록에 나타나지 않은 문자형 항목이 포함될 수 있다)
단, SELECT DISTINCT를 지정하거나 SQL 문장에 GROUP BY 절이 있거나 또는 SELECT 문에 UNION 연산자가 있으면 열 정의가 SELECT 목록에 표시되어야 한다.
3. TOP N 쿼리
ROWNUM
순위가 높은 N개의 로우를 추출하기 위해 사용
주의사항: ORDER BY 절과 WHERE 절의 ROWNUM 조건을 같이 사용하여 두 조건으로 원하는 결과를 얻을 수 없음. 우 정렬이 완료된 후 데이터의 일부가 출력되는 것이 아니라, 데이터의 일부가 먼저 추출된 후 (ORDER BY 절은 결과 집합을 결정하는데 관여하지 않음) 데이터에 대한 정렬 작업이 일어남
TOP
순위 높은 N개의 로우를 추출하기 위해 사용. 결과 집합으로 반환되는 행 수를 제한 가능
Order By 정렬 후 원하는 데이터만 쉽게 출력 가능
WITH TIES 옵션은 ORDER BY 절의 조건 기준으로 TOP N 의 마지막 행으로 표시되는 추가 행의 데이터가 같을 경우 N+ 동일 정렬 순서 데이터를 추가 반환하도록 지정하는 옵션
'Study > SQLD' 카테고리의 다른 글
2-2장 SQL 활용 - 1절 표준 조인 (2) | 2022.06.28 |
---|---|
2-1장 SQL 기본 - 9절 조인(JOIN) (2) | 2022.06.28 |
2-1장 SQL 기본 - 7절 GROUP BY, HAVING 절 (0) | 2022.06.26 |
2-1장 SQL 기본 - 6절 함수(Function) (0) | 2022.06.25 |
2-1장 SQL 기본 - 5절 WHERE절 (0) | 2022.06.24 |