[데이터베이스 목차 완전정복]
안녕하세요 양햄찌 블로그 주인장입니다.
오늘은 기초?에 해당하는 order by 절에 대해 작성해보려고 해요.
[INDEX]
order by란 무엇인가
내가 어떤 테이블에서 데이터를 조회했는데 그 결과를 정렬하고 싶을 때 사용하는 게 order by 절입니다.
order by 절은 기본적으로 오름차순(ASC)입니다.
SELECT *
FROM EMPLOYEES e
ORDER BY EMPLOYEE_ID asc;
-> EMPLOYEES 테이블에 있는 모든 데이터를 조회하는데 EMPLOYEE_ID 오름차순 순으로 정렬해서 보여줘
이쁘게 정렬된 것을 볼 수 있습니다.
asc를 붙이나 안붙이나 결과는 같아요 ㅎㅎ
desc와 asc 키워드
오름차순 말고 내림차순 순으로 정렬하고 싶을 경우에는 뒤에 DESC 키워드를 써주면 됩니다.
참고로 오라클은 NULL값을 가장 큰 값으로 간주하고 있어요. 자세한 사항은 NULL의 개념 포스팅을 참고~!
[▼NULL개념 관련 이전 포스팅]
색칠된 부분 보면 EMPLOYEE_ID가 큰 값부터 조회되는 것을 확인할 수 있어요.
정렬 기준을 여러개 하고 싶을 경우
컴마로 원하는 만큼 이어붙여주면 됩니다.
맨 앞에 값이 같을 경우 뒤에 조건으로 정렬 기준을 판별하게 됩니다.
SELECT SALARY , EMPLOYEE_ID
FROM EMPLOYEES e
ORDER BY SALARY DESC, EMPLOYEE_ID;
SALARY가 높은 순으로(내림차순) 정렬하는데, SALARY가 같은 데이터가 있다면 EMPLOYEE_ID가 낮은(오름차순) 데이터를 먼저 정렬해라.
결과를 보면, 같은 SALARY 값에 대해서, EMPLOYEE_ID 낮은게 먼저 조회된 것을 확인할 수 있어요.
ORDER BY 1, 2
보통 ORDER BY 뒤에는 컬럼명이 오는데, 종종, ORDER BY 1, 2 이런식으로 숫자표현된 것을 보신적 있으실거예요
1은 첫번째 컬럼을 의미하고 2는 두 번째 컬럼을 의미합니다.
즉 숫자가 조회되었을때의 컬럼 순서예요 ㅎㅎ 간단하죠?
--[컬럼사용]--
SELECT SALARY , EMPLOYEE_ID
FROM EMPLOYEES e
ORDER BY SALARY , EMPLOYEE_ID;
--[숫자표현사용]--
SELECT SALARY , EMPLOYEE_ID
FROM EMPLOYEES e
ORDER BY 1, 2;
저 두 쿼리는 결국 같은 쿼리랍니당
SALARY 오름차순, EMPLOYEE_ID 오름차순으로 결과가 잘 나온 것을 확인해봤어요
오늘은 빠르고 간단하게 order by절에 대해 알아보았습니다.
그럼 다음 포스팅에서 또 봐요~
'별걸다하는 IT > 데이터베이스 Database' 카테고리의 다른 글
[SQL] GROUPING 완벽히 이해하고 사용하기, NULL값 '총합'으로 변경 (4) | 2021.09.30 |
---|---|
[SQL] 현재 날짜 시간 정보 알려주는 sysdate 함수, 포맷 자유자재 변경하기 (0) | 2021.09.29 |
[오라클 SQL] ROWNUM - 특정 개수의 행만 조회하기, 행 번호 매기기 rownum = 2, order by rownum (0) | 2021.06.10 |
[SQL] 순위 매기는 함수 - ROW_NUMBER(), RANK(), DENSE_RANK() (1) | 2021.05.20 |
[데이터베이스 SQL 기초] 오라클, MySQL 결과 중복 제거 DISTINCT에 사용법 (0) | 2021.04.01 |
최신 댓글