SQL

SQL COALESCE 함수

봄다온 2025. 1. 20. 09:38

COALESCE 함수

데이터 조회시 NULL값을 다른 기본값으로 대체할때 자주사용.

# map함수처럼 인자들을 반복하며 null값인지 조회하고 null값이 아닌값이 나오면 해당값을 리턴.각 매개변수들의 타입은 같아야함
SELECT COALESCE(null, null, null, '빈 값') as column1;
   column1
---------
 빈 값
(1 row)

단 여기서 COALESCE의 인자로 특정값이 아닌 컬럼을 넣는다면 해당 컬럼의 모든 값을 
조회후 모든 null값을 그 뒤에 지정한 값으로 대체한다.
select * from student_score;
 id |   name    | score
----+-----------+-------
  1 | Heewon    |    87
  2 | Gahye     |    64
  3 | Sabin     |    90
  4 | Deoksun   |   100
  5 | Yejin     |    75
  6 | Gyungsook |    95
  7 | Jinah     |    81
  8 | Jaejung   |    78
  9 | Jiyul     |    61
 10 | Youjun    |
 11 | Minjoo    |

select id, name, coalesce (score,0) as score,
  case
    when score between 90 and 100 then 'A'
    when score between 80 and 89 then 'B'
    when score between 70 and 79 then 'C'
    when coalesce (score, 0) < 70 then 'F'
  end grade
from student_score;
 id |   name    | score | grade
----+-----------+-------+-------
  1 | Heewon    |    87 | B
  2 | Gahye     |    64 | F
  3 | Sabin     |    90 | A
  4 | Deoksun   |   100 | A
  5 | Yejin     |    75 | C
  6 | Gyungsook |    95 | A
  7 | Jinah     |    81 | B
  8 | Jaejung   |    78 | C
  9 | Jiyul     |    61 | F
 10 | Youjun    |     0 | F
 11 | Minjoo    |     0 | F

컬럼명과 case조건문 두곳 모두에서 coalesce함수를 써야 제대로 동작하는것 같다.

'SQL' 카테고리의 다른 글

SQL JSON 생성,처리 함수  (0) 2025.01.20
SQL 배열 연산자  (0) 2025.01.20
SQL NULLIF 함수  (0) 2025.01.20
SQL 배열 함수  (0) 2025.01.20
SQL JSON연산자, JSONB 연산자  (0) 2025.01.20