[PostgreSQL] COALESCE 함수 활용

Yuri Lee·2021년 6월 8일
0

배경

  • JS 앞단에서 null 값에 대해 하드코딩을 하던 곳이 있었다. 이 부분은 view 에서 조회하는 부분이였으므로 view의 sql을 수정해야 했다.
  • PostgreSQL 에서는 COALESCE 라는 함수를 활용하여 null 값을 특정 데이터로 가공해서 추출할 수 있다.

COALESCE

 COALESCE(x, y)
  • 첫 파라미터인 x 가 null 이라면 y를 반환하고 그렇지 않으면 x를 반환한다.

How to use

CREATE TABLE purchase_log (
    purchase_id varchar(255)
  , amount      integer
  , coupon      integer
);

INSERT INTO purchase_log
VALUES
    ('10001', 3280, NULL)
  , ('10002', 4650,  500)
  , ('10003', 3870, NULL)
;
  • 다음의 sql 문이 있다고 하자. purchase_log 라는 테이블을 만들고, 3개 행 데이터를 넣어주었다.
  • 위 데이터에서 amount 컬럼 값에서 coupon 값을 뺀 값을 추출하고자 할 때 default 값 변경 없이 연산할 경우 null 이 된다. 이를 COALESCE 함수를 통해 방지할 수 있다.
SELECT
	purchase_id
	, amount
	, coupon
	, amount - coupon AS 할인가격1
	, amount - COALESCE(coupon, 0) AS 할인가격2
FROM purchase_log;
  • coupon의 값이 null 일 경우 해당 값을 0으로 가공해준다.

https://augustines.tistory.com/64
https://brownbears.tistory.com/539

profile
Step by step goes a long way ✨

0개의 댓글