쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

NVL2 함수

포커스 모드
NVL2 함수 - Amazon Redshift

지정하는 표현식의 평가 결과가 NULL 또는 NOT NULL인지 여부에 따라 두 값 중 하나를 반환합니다.

구문

NVL2 ( expression, not_null_return_value, null_return_value )

인수

expression

NULL 상태로 평가되는 표현식(열 이름 등)입니다.

not_null_return_value

expression이 NOT NULL로 평가되면 반환되는 값입니다. not_null_return_value 값은 expression과 동일한 데이터 형식이거나, 혹은 묵시적으로 이 데이터 형식으로 변환 가능해야 합니다.

null_return_value

expression이 NULL로 평가되면 반환되는 값입니다. null_return_value 값은 expression과 동일한 데이터 형식이거나, 혹은 묵시적으로 이 데이터 형식으로 변환 가능해야 합니다.

반환 타입

NVL2 반환 형식은 다음과 같이 결정됩니다.

  • not_null_return_value 또는 null_return_value이 NULL이면 not null 표현식의 데이터 형식이 반환됩니다.

not_null_return_valuenull_return_value 모두 NULL이 아닌 경우에는 다음과 같습니다.

  • not_null_return_valuenull_return_value의 데이터 형식이 동일하면 해당 데이터 형식이 반환됩니다.

  • not_null_return_valuenull_return_value의 숫자 데이터 형식이 다르면 가장 작으면서 호환도 가능한 숫자 데이터 형식이 반환됩니다.

  • not_null_return_valuenull_return_value의 날짜/시간 데이터 형식이 다르면 타임스탬프 데이터 형식이 반환됩니다.

  • not_null_return_valuenull_return_value의 문자 데이터 형식이 다르면 not_null_return_value의 데이터 형식이 반환됩니다.

  • not_null_return_valuenull_return_value의 데이터 형식이 숫자와 비숫자로 섞여 있으면 not_null_return_value의 데이터 형식이 반환됩니다.

중요

not_null_return_value의 데이터 형식이 반환되는 마지막 두 경우에서는 null_return_value가 묵시적으로 해당 데이터 형식으로 변환됩니다. 이때 데이터 형식이 서로 호환되지 않으면 함수가 중단됩니다.

사용 노트

expressionsearch 파라미터가 모두 null인 경우 NVL2와 유사한 방식으로 DECODE 함수을 사용할 수 있습니다. 차이점은, DECODE일 때는 result 파라미터의 값과 데이터 형식이 모두 반환되는 데 있습니다. 이와는 반대로 NVL2일 때는 not_null_return_value 또는 null_return_value 파라미터의 값 중에서 함수에서 선택하는 값과 함께 not_null_return_value의 데이터 형식이 반환됩니다.

예를 들어 column1이 NULL이라고 가정하면 다음 두 쿼리에서 동일한 값이 반환됩니다. 하지만 DECODE의 반환 값 데이터 형식은 INTEGER인 반면 NVL2의 반환 값 데이터 형식은 VARCHAR입니다.

select decode(column1, null, 1234, '2345'); select nvl2(column1, '2345', 1234);

예제

다음은 일부 샘플 데이터를 수정한 후 두 필드를 평가하여 적합한 사용자 연락처를 제공하는 예입니다.

update users set email = null where firstname = 'Aphrodite' and lastname = 'Acevedo'; select (firstname + ' ' + lastname) as name, nvl2(email, email, phone) AS contact_info from users where state = 'WA' and lastname like 'A%' order by lastname, firstname; name contact_info --------------------+------------------------------------------- Aphrodite Acevedo (906) 632-4407 Caldwell Acevedo Nunc.sollicitudin@Duisac.ca Quinn Adams vel@adipiscingligulaAenean.com Kamal Aguilar quis@vulputaterisusa.com Samson Alexander hendrerit.neque@indolorFusce.ca Hall Alford ac.mattis@vitaediamProin.edu Lane Allen et.netus@risusDonec.org Xander Allison ac.facilisis.facilisis@Infaucibus.com Amaya Alvarado dui.nec.tempus@eudui.edu Vera Alvarez at.arcu.Vestibulum@pellentesque.edu Yetta Anthony enim.sit@risus.org Violet Arnold ad.litora@at.com August Ashley consectetuer.euismod@Phasellus.com Karyn Austin ipsum.primis.in@Maurisblanditenim.org Lucas Ayers at@elitpretiumet.com

이 페이지에서

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.