본문 바로가기

별걸다하는 IT/데이터베이스 Database

[SQL] 정렬하기 order by 쿼리 사용법 1, 2 desc 의미

반응형

[데이터베이스 목차 완전정복]

안녕하세요 양햄찌 블로그 주인장입니다.

오늘은 기초?에 해당하는 order by 절에 대해 작성해보려고 해요.

 

[INDEX]

1. order by 란 무엇인가

2. desc와 asc 키워드

3. 정렬 기준이 다수일때

4. order by 1,2

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개념 관련 이전 포스팅]

2019.02.06 - [별걸다하는 IT/데이터베이스 Database] - [sql, 오라클]NULL 개념, NULL 중요도와 연산, 선택, NULL관련 함수 종류, NULL 정렬[NULLS FIRST, NULLS LAST]

색칠된 부분 보면 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절에 대해 알아보았습니다.

그럼 다음 포스팅에서 또 봐요~

반응형