병합한다는 의미의 coalesce 함수입니다. 조건에 따라서 두 칼럼을 합치는 기능을 하는데, 이런 기능을 활용해서 NULL 값을 특정 값으로 변환하는 데 사용하기도 합니다.
아래와 같은 table이 있습니다. coalesce 함수를 사용해서 두 컬럼을 병합해보겠습니다.
SELECT A, B, COALESCE(A, B) FROM test;
함수는 두 개의 인자를 받습니다. 그리고 첫번째 인자의 0번째 행부터 value를 살핍니다. 만약 A 컬럼의 0번째 행이 NULL이라면 해당 값은 같은 줄에 있는 B 컬럼의 값으로 대체됩니다.
반대로, B 컬럼의 0번째 행이 NULL이라면 해당 값은 같은 줄에 있는 A 컬럼으로 대체됩니다. 두 값 모두 NULL이라면, NULL이 반환되고, NOT NULL이라면 A 값이 반환됩니다. 아래 함수의 결과를 보시면 이해가 빠를 것 같습니다.
coalesce 함수는 다음처럼 활용할 수도 있습니다.
SELECT COALESCE(A, '---') FROM test;
이렇게 사용하면 A 컬럼의 NULL 값을 '---'로 대체할 수 있습니다. 컬럼을 병합하지 않고 하나의 컬럼 안에 있는 결측치를 다른 값으로 바꾸고 싶을 때 사용할 수 있습니다.