- 카테고리:
DECODE¶
select 식을 각 검색 식과 순서대로 비교합니다. 검색 식이 선택 식과 일치하는 즉시, 해당 결과 식이 반환됩니다.
참고
Snowflake의 DECODE는 데이터를 다른 인코딩으로 변환하는 PostgreSQL의 DECODE 함수와는 다릅니다.
구문¶
DECODE( <expr> , <search1> , <result1> [ , <search2> , <result2> ... ] [ , <default> ] )
인자¶
expr
이는 “선택 식”입니다. “검색 식”은 이 선택 식과 비교되며, 일치 항목이 있는 경우
DECODE
는 그 검색 식에 해당하는 결과를 반환합니다. 선택 식은 일반적으로 열이지만, 하위 쿼리, 리터럴 또는 기타 식일 수 있습니다.searchN
검색 식은 선택 식과 비교할 값을 나타냅니다. 이러한 검색 식 중 하나가 일치하는 경우, 함수는 해당
result
를 반환합니다. 둘 이상의 검색 식이 일치하는 경우, 첫 번째 일치의 결과만 반환됩니다.resultN
결과는 검색 식 중 하나가 선택 식과 일치하는 경우 반환되는 값입니다.
default
선택적 기본값이 지정되고, 검색 식이 선택 식과 일치하지 않는 경우,
DECODE
는 이 기본값을 반환합니다.
사용법 노트¶
CASE 와 달리 선택 식의 NULL 값은 검색 식의 NULL 값과 일치합니다.
expr
에는UNION
,INTERSECT
,EXCEPT
,MINUS
와 같은 세트 연산자가 포함될 수 있습니다. 세트 연산자를 사용할 때 데이터 타입이 호환되는지 확인하십시오. 자세한 내용은 세트 연산자 항목의 일반적인 사용법 노트 를 참조하십시오.
데이터 정렬 세부 정보¶
선택 식과 검색 식의 데이터 정렬 사양은 모두 호환 가능해야 합니다.
함수에서 반환된 값은 우선 순위 가 가장 높은 데이터 정렬이 있는 결과의 데이터 정렬 사양을 유지합니다.
예¶
테이블을 만들고 행을 삽입합니다.
CREATE TABLE d (column1 INTEGER); INSERT INTO d (column1) VALUES (1), (2), (NULL), (4);
기본값이 'other'
인 예(NULL은 NULL임에 유의):
SELECT column1, decode(column1, 1, 'one', 2, 'two', NULL, '-NULL-', 'other' ) AS decode_result FROM d; +---------+---------------+ | COLUMN1 | DECODE_RESULT | |---------+---------------| | 1 | one | | 2 | two | | NULL | -NULL- | | 4 | other | +---------+---------------+
기본값이 없는 예(일치하지 않는 값은 NULL을 반환함에 유의):
SELECT column1, decode(column1, 1, 'one', 2, 'two', NULL, '-NULL-' ) AS decode_result FROM d; +---------+---------------+ | COLUMN1 | DECODE_RESULT | |---------+---------------| | 1 | one | | 2 | two | | NULL | -NULL- | | 4 | NULL | +---------+---------------+