Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Função NVL2

Modo de foco
Função NVL2 - Amazon Redshift

Retorna um de dois valores, dependendo se uma expressão especificada avalia para NULL ou NOT NULL.

Sintaxe

NVL2 ( expression, not_null_return_value, null_return_value )

Argumentos

expressão

Uma expressão, tal como um nome de coluna, a ser avaliada quanto ao status nulo.

not_null_return_value

O valor retornado se a expressão avaliar para NOT NULL. O valor not_null_return_value deve ter o mesmo tipo de dados que a expressão ou ser implicitamente conversível para esse tipo de dados.

null_return_value

O valor retornado se a expressão avaliar para NULL. O valor null_return_value deve ter o mesmo tipo de dados que a expressão ou ser implicitamente conversível para esse tipo de dados.

Tipo de retorno

O tipo de retorno de NVL2 é determinado da seguinte forma:

  • Se not_null_return_value ou null_return_value for nulo, o tipo de dados da expressão não nula será retornado.

Se not_null_return_value e null_return_value não forem nulos:

  • Se not_null_return_value e null_return_value tiverem o mesmo tipo de dados, esse tipo de dados será retornado.

  • Se not_null_return_value e null_return_value tiverem diferentes tipos de dados numéricos, o menor tipo de dados numérico compatível será retornado.

  • Se not_null_return_value e null_return_value tiverem diferentes tipos de dados datetime, um tipo de dados de timestamp será retornado.

  • Se not_null_return_value e null_return_value tiverem diferentes tipos de dados de caracteres, o tipo de dados de not_null_return_value será retornado.

  • Se not_null_return_value e null_return_value tiverem tipos de dados numéricos e não numéricos variados, o tipo de dados de not_null_return_value será retornado.

Importante

Nos últimos dois casos onde o tipo de dados de not_null_return_value é retornado, o null_return_value é convertido implicitamente para esse tipo de dados. Se os tipos de dados forem incompatíveis, a função falhará.

Observações de uso

Função DECODE pode ser usada de forma similar a NVL2 quando os parâmetros da expressão e da pesquisa forem nulos. A diferença é que para DECODE, o retorno terá o valor e o tipo de dados do parâmetro do resultado. Em contraste, para NVL2, o retorno terá o valor do parâmetro not_null_return_value ou null_return_value, o que for selecionado pela função, mas terá o tipo de dados de not_null_return_value.

Por exemplo, supondo que column1 seja NULL, as consultas seguintes retornarão o mesmo valor. Contudo, o tipo de dados do valor de retorno para DECODE será INTEGER e o tipo de dados do valor de retorno para NVL2 será VARCHAR.

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

Exemplo

O seguinte exemplo altera alguns dados de amostra e, então, avalia dois campos para fornecer as informações de contato apropriadas para usuários:

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
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.