- 카테고리:
COALESCE¶
인자 중 첫 번째 NULL이 아닌 식을 반환하거나, 모든 인자가 NULL이면 NULL을 반환합니다.
구문¶
COALESCE( <expr1> , <expr2> [ , ... , <exprN> ] )
사용법 노트¶
Snowflake는 인자가 호환되도록 하기 위해 암시적 변환 <label-when_coercion_occurs>`을 수행합니다. 예를 들어, 입력 식 중 하나가 숫자 유형인 경우 반환 유형도 숫자 유형입니다. 즉, :code:`SELECT COALESCE(‘17’, 1);`은 먼저 VARCHAR 값 :code:’17’`을 NUMBER 값 :code:`17`로 변환한 후 첫 번째 NULL이 아닌 값을 반환합니다.
변환이 불가능하면 암시적 변환이 실패합니다. 예를 들어,
SELECT COALESCE('foo', 1);`은 VARCHAR 값 :code:’foo’`를 NUMBER 값으로 변환할 수 없으므로 오류를 반환합니다.We recommend passing in arguments of the same type or explicitly converting arguments if needed.
암시적 변환이 숫자가 아닌 값을 숫자 값으로 변환하는 경우 결과는 NUMBER(18,5) 유형의 값이 됩니다.
상수가 아닌 숫자형 문자열 인자의 경우 NUMBER(18,5)가 숫자 값을 나타내기에 충분하지 않으면 해당 값을 나타낼 수 있는 형식으로 인자를 형 변환 해야 합니다.
데이터 정렬 세부 정보¶
The collation specifications of all input arguments must be compatible.
The comparisons follow the collation based on the input arguments’ collations and precedences.
The collation of the result of the function is the highest-precedence collation of the inputs.
예¶
다음 예에서는 3개 열에 있는 값 및 해당 3개의 열에 COALESCE 함수를 적용한 경우의 결과를 보여줍니다.
SELECT column1,
column2,
column3,
COALESCE(column1, column2, column3) AS coalesce_result
FROM (values
(1, 2, 3 ),
(null, 2, 3 ),
(null, null, 3 ),
(null, null, null),
(1, null, 3 ),
(1, null, null),
(1, 2, null)
) v;
+---------+---------+---------+-----------------+
| COLUMN1 | COLUMN2 | COLUMN3 | COALESCE_RESULT |
|---------+---------+---------+-----------------|
| 1 | 2 | 3 | 1 |
| NULL | 2 | 3 | 2 |
| NULL | NULL | 3 | 3 |
| NULL | NULL | NULL | NULL |
| 1 | NULL | 3 | 1 |
| 1 | NULL | NULL | 1 |
| 1 | 2 | NULL | 1 |
+---------+---------+---------+-----------------+