SELECT을 사용하여 명령문  에서 반환된 결과 집합을 정렬하는 방법

 

 

테이블에서 데이터를 쿼리할 때 SELECT문은 지정되지 않은 순서로 행을 반환합니다. 

결과 집합의 행을 정렬하려면  에서 ORDER BY 절 을 사용합니다.

SELECT오름차순 또는 정렬 식을 기준으로 내림차순으로 정렬 할 수 있습니다.

 

SELECT
	select_list
FROM
	table_name
ORDER BY
	sort_expression1 [ASC | DESC],
        ...
	sort_expressionN [ASC | DESC];
  • 첫째, ORDER BY키워드 다음에 정렬할 열 또는 표현식이 될 수 있는 정렬 표현식을 지정해야합니다. 여러 열이나 표현식을 기준으로 결과 집합을 정렬하려면 ,두 열이나 표현식 사이에 쉼표( )를 넣어 구분해야 합니다.
  • 둘째, ASC행을 오름차순으로 정렬 하는 옵션과 내림차순으로 행을 정렬 하는 옵션을 사용합니다.  ASC또는 DESC옵션을 생략하면 기본적으로 ASC 사용됩니다.


1)PostgreSQL ORDER BY절을 사용하여 한 열로 행 정렬

//ORDER BY절을 사용하여 이름을 기준으로 오름차순으로 고객을 정렬
SELECT
	first_name,
	last_name
FROM
	customer
ORDER BY
	first_name ASC;

 

2) PostgreSQL ORDER BY절을 사용하여 한 열을 기준으로 내림차순으로 행 정렬

SELECT
       first_name,
       last_name
FROM
       customer
ORDER BY
       last_name DESC;

 

3) PostgreSQL ORDER BY절을 사용하여 여러 열로 행 정렬

SELECT
	first_name,
	last_name
FROM
	customer
ORDER BY
	first_name ASC,
	last_name DESC;

 

4) PostgreSQL ORDER BY절을 사용하여 표현식으로 행 정렬

SELECT 
	first_name,
	LENGTH(first_name) len
FROM
	customer
ORDER BY 
	len DESC;

 


NULL는 누락된 데이터 또는 기록 당시 데이터를 알 수 없음을 나타내는 마커입니다.
ORDER BY에서 NULLS FIRST와 NULLS LAST로 순서를 지정할 수 있습니다.

 

ORDER BY sort_expresssion [ASC | DESC] [NULLS FIRST | NULLS LAST]

 

- 데모용 테이블 생성

-- create a new table
CREATE TABLE sort_demo(
	num INT
);

-- insert some data
INSERT INTO sort_demo(num)
VALUES(1),(2),(3),(null);
SELECT num
FROM sort_demo
ORDER BY num;

-- same

SELECT num
FROM sort_demo
ORDER BY num NULLS LAST;

ASC옵션 을 사용하면 ORDER BY절은 NULLS LAST기본적으로 옵션을 사용합니다.

 

NULL을 null이 아닌 다른 값 앞에 배치하려면 다음 NULLS FIRST옵션 을 사용합니다.

SELECT num
FROM sort_demo
ORDER BY num NULLS FIRST;

num은 sort_demo테이블  열에 있는  을 내림차순으로 정렬합니다.

SELECT num
FROM sort_demo
ORDER BY num DESC;

 


  • NULLS FIRST및 NULLS LAST옵션을 사용 NULL하여 다른 null이 아닌 값 의 순서를 명시적으로 지정 합니다.
반응형

'SW ENGINEERING > Postgres' 카테고리의 다른 글

[PostgreSQL] BASIC - LIMIT  (0) 2021.09.01
[PostgreSQL] BASIC - WHERE  (0) 2021.09.01
[PostgreSQL] BASIC - SELECT DISTINCT  (0) 2021.09.01
[PostgreSQL] BASIC - Column_alias  (0) 2021.09.01
[PostgreSQL] BASIC - SELECT  (0) 2021.09.01
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기