반응형
오라클에서 정렬 순서를 지정하기 위해서는 ORDER BY 구문을 사용하면 됩니다. 기본적인 ORDER BY 사용법은 아래와 같습니다.
SELECT COL1, COL2 AS COL_NAME
FROM TABLE_NAME
ORDER BY COL1 [ASC OR DESC], COL_NAME [ASC OR DESC]
위와 같이 SELECT 구문에 명시되어 있는 컬럼명들을 ORDER BY 구문에 나열하고 오름차순( ASC - 명시하지 않을 시에 기본 ) 혹은 내림차순 (DESC)을 입력하여 정렬 순서를 지정합니다. ORDER BY 에 나열되는 구문은 SELECT 문의 실행 결과에 보여지는 컬럼과 동일한 이름을 명시해야 합니다. 따라서 COL2의 별칭인 COL_NAME을 ORDER BY 절에 명시해야 오류가 나지 않습니다.
아래처럼 컬럼명을 지정하지 않고 리턴되는 컬럼의 순서를 지정하여 정렬을 지정하는 벙법도 있습니다. 이 경우 별칭과 상관없이 리턴되는 컬럼의 순서에 맞추어 정렬이 이루어집니다.
SELECT COL1, COL2 AS COL_NAME
FROM TABLE_NAME
ORDER BY 1 [ASC OR DESC], 2 [ASC OR DESC]
위 컬럼은 첫번째 컬럼과 동일하게 COL1 에 대한 정렬을 나타냅니다. 리턴되는 컬럼의 첫번째인 COL1을 기준으로 정렬이 지정되어 보여집니다.
아래는 위 구문을 사용한 예입니다. WITH 구문을 사용한 정렬 (참고) 에서 USER_KEY를 DESC 한 쿼리문과, 1 DESC 로 지정되어 정렬된 구문은 같은 결과를 출력합니다.
WITH TEST_NAME AS (
SELECT 10021 AS USER_KEY, '김아무개' AS "이름" FROM DUAL UNION ALL
SELECT 10022 AS USER_KEY, '박아무개' FROM DUAL UNION ALL
SELECT 10023 AS USER_KEY, '이아무개' FROM DUAL UNION ALL
SELECT 10024 AS USER_KEY, '유아무개' FROM DUAL UNION ALL
SELECT 10025 AS USER_KEY, '최아무개' FROM DUAL UNION ALL
SELECT 10026 AS USER_KEY, '박아무개' FROM DUAL UNION ALL
SELECT 10027 AS USER_KEY, '이아무개' FROM DUAL UNION ALL
SELECT 10028 AS USER_KEY, '김아무개' FROM DUAL UNION ALL
SELECT 10029 AS USER_KEY, '박아무개' FROM DUAL UNION ALL
SELECT 10030 AS USER_KEY, '최아무개' FROM DUAL UNION ALL
SELECT 10031 AS USER_KEY, '임아무개' FROM DUAL
)
SELECT USER_KEY, "이름"
FROM TEST_NAME
ORDER BY USER_KEY DESC
WITH TEST_NAME AS (
SELECT 10021 AS USER_KEY, '김아무개' AS "이름" FROM DUAL UNION ALL
SELECT 10022 AS USER_KEY, '박아무개' FROM DUAL UNION ALL
SELECT 10023 AS USER_KEY, '이아무개' FROM DUAL UNION ALL
SELECT 10024 AS USER_KEY, '유아무개' FROM DUAL UNION ALL
SELECT 10025 AS USER_KEY, '최아무개' FROM DUAL UNION ALL
SELECT 10026 AS USER_KEY, '박아무개' FROM DUAL UNION ALL
SELECT 10027 AS USER_KEY, '이아무개' FROM DUAL UNION ALL
SELECT 10028 AS USER_KEY, '김아무개' FROM DUAL UNION ALL
SELECT 10029 AS USER_KEY, '박아무개' FROM DUAL UNION ALL
SELECT 10030 AS USER_KEY, '최아무개' FROM DUAL UNION ALL
SELECT 10031 AS USER_KEY, '임아무개' FROM DUAL
)
SELECT USER_KEY, "이름"
FROM TEST_NAME
ORDER BY 1 DESC
위 쿼리를 실행하면 두 쿼리 결과 모두 아래의 결과를 리턴합니다. ORDER BY 구문에 명시된 USER_KEY 와 리턴되는 첫번째 컬럼인 USER_KEY 가 묵시적으로 정렬의 기준이 되어 아래처럼 USER_KEY로 DESC 이 된 형태로 결과값이 보여집니다.
반응형
'프로그래밍 PROGRAMMING > 데이터베이스 DATABASE' 카테고리의 다른 글
[ORACLE] 랜덤 숫자 혹은 문자열 생성하기 : DBMS_RANDOM (0) | 2021.12.20 |
---|---|
[ORACLE] 오라클 문자열의 날짜 형식을 확인하는 방법 (0) | 2021.11.13 |
[ORACLE] 오라클 WITH 구문을 사용해 가상테이블 만드는 방법 (0) | 2021.11.11 |
[ORACLE] 오라클 INTERVAL 내장함수 사용하는 방법 (0) | 2021.06.23 |
[ORACLE] 오라클 컬럼 코멘트 추가/확인/삭제 방법 (0) | 2021.06.23 |