Postgres - coalesce, with as


알아두면 생각보다 많이 쓰고 유용한 SQL 정리

coalesce 함수

null인 값을 무시하고 null이 아닌 인자를 출력해주는 함수이다.
case 문을 써서도 할 수 있는 부분이지만 coalesce함수를 사용하는게 보기도 좋고 성능도 좋다.

select coalesce(tt.a, tt.b, tt.c, 'test') as tests
  , tt.d
from test_table tt

전달받은 인자 중 null이 아닌 값이 있을 때까지 인자 순서대로 확인한다.
위 코드에서는 모든 값이 null일지라도 test를 출력하게 될 꺼다. 이처럼 기본값도 쉽게 설정이 가능하다.

with as 문

임시 테이블을 만들어 사용할 때 사용하는 구문이다.
가독성과 재사용성이 좋고, 계층형 쿼리를 구현할 수 있게 해준다.

with temp_table as (
  select
    c1
    , c2
    , c3
    , count(c4)
  from table_1
  group by 1, 2, 3
)
select
  *
from table_2 t2
inner join temp_table tt on tt.c1 = t2.c1

Tags:

Categories:

Updated: