Qual é a diferença entre NVL e NVL2? – Guia de SQL

Se você já trabalhou com SQL, provavelmente já encontrou as funções NVL e NVL2 em algum momento. Ambas são usadas para substituir valores nulos em uma consulta, mas qual é a diferença entre elas? Neste guia, explicaremos as diferenças entre as duas funções e quando é apropriado usá-las.

O que é a função NVL em SQL?

A função NVL é usada para substituir valores nulos em uma consulta por um valor especificado. A sintaxe da função NVL é a seguinte:

NVL(coluna, valor_substituto)

Se a coluna especificada na consulta contiver um valor nulo, a função NVL substituirá esse valor pelo valor especificado como substituto. Caso contrário, o valor original da coluna será retornado.

O que é a função NVL2 em SQL?

A função NVL2 é semelhante à função NVL, mas permite especificar dois valores substitutos diferentes. A sintaxe da função NVL2 é a seguinte:

NVL2(coluna, valor_não_nulo, valor_nulo)

Se a coluna especificada na consulta contiver um valor não nulo, a função NVL2 retornará o valor especificado como “valor não nulo”. Se a coluna contiver um valor nulo, a função NVL2 retornará o valor especificado como “valor nulo”.

Quando usar NVL e NVL2 em SQL?

Então, quando é apropriado usar a função NVL e quando é melhor usar a função NVL2?

A função NVL é mais apropriada quando você deseja substituir valores nulos por um único valor substituto. Por exemplo, se você quiser que valores nulos em uma coluna de datas sejam substituídos por uma data padrão, você pode usar a função NVL para fazer isso:

SELECT NVL(data, '01/01/2000') FROM tabela;

Este comando SQL substituirá qualquer valor nulo na coluna “data” por ’01/01/2000′.

Por outro lado, a função NVL2 é mais apropriada quando você precisa escolher entre dois valores substitutos diferentes, com base se o valor original é nulo ou não nulo. Por exemplo, se você tiver uma coluna “status” em uma tabela que pode conter valores nulos, você pode usar a função NVL2 para substituir o valor nulo por “desconhecido” e manter o valor original para valores não nulos:

SELECT NVL2(status, status, 'desconhecido') FROM tabela;

Este comando SQL retornará o valor original da coluna “status” para valores não nulos e “desconhecido” para valores nulos.

Conclusão

Em resumo, a função NVL é usada para substituir valores nulos por um único valor substituto, enquanto a função NVL2 é usada para escolher entre dois valores substitutos diferentes, com base se o valor original é nulo ou não nulo. Ao entender a diferença entre as duas funções, você pode escolher qual é a mais apropriada para sua consulta SQL.

Para mais informações sobre funções SQL, consulte a documentação oficial do seu banco de dados. E lembre-se de sempre testar suas consultas em um ambiente de teste antes de executá-las em produção.

Fonte: Adaptado de TechOnTheNet

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima