Article image
BROGTTI
BROGTTI12/09/2023 10:32
Compartilhe

TRATAMENTO DE CAMPO NULO - FIREBIRD

  • #SQL

Coalesce:

A função COALESCE em SQL é usada para retornar o primeiro valor não nulo em uma lista de expressões. Ela é especialmente útil quando você deseja obter o primeiro valor válido de uma série de colunas ou expressões, em vez de simplesmente retornar o primeiro valor encontrado, como aconteceria com a função IFNULL ou ISNULL (dependendo do banco de dados que você está usando).

A sintaxe geral da função COALESCE é a seguinte:

COALESCE(valor1, valor2, ..., valorN)

Nessa sintaxe, os "valores" são as expressões ou colunas que você deseja avaliar. A função COALESCE avaliará essas expressões da esquerda para a direita e retornará o primeiro valor não nulo encontrado. Se todos os valores forem nulos, a função retornará nulo.

Suponha que você tenha uma tabela chamada "Produtos" com colunas "Nome", "NomeAlternativo" e "Descricao". Você deseja selecionar um nome alternativo se estiver disponível, caso contrário, deseja usar o nome principal do produto. A consulta SQL poderia ser assim:

SELECT COALESCE(NomeAlternativo, Nome) AS NomeSelecionado, Descricao
FROM Produtos;

Nesse exemplo, se "NomeAlternativo" não for nulo para um determinado produto, esse valor será retornado como "NomeSelecionado". Caso contrário, o "Nome" principal será retornado.

Essa função é útil para garantir que você tenha um valor válido a ser usado em determinadas situações, especialmente quando lidando com dados potencialmente incompletos ou nulos.

NULLIF:

Esta função é utilizada para comparação de dois parâmetros, sendo os dois iguais o retorno será null, caso contrário o primeiro parâmetro será retornado. 

A sintaxe da função NULLIF no Firebird é a seguinte:

NULLIF(valor1, valor2)

valor1: O valor que você deseja retornar se for diferente de valor2.

valor2: O valor que você deseja comparar com valor1. Se valor1 for igual a valor2, a função retornará null.

SELECT NULLIF(10, 10) AS Resultado; -- Isso retornará NULL, porque 10 é igual a 10.
SELECT NULLIF(20, 30) AS Resultado; -- Isso retornará 20, porque 20 é diferente de 30.

Neste exemplo, na primeira consulta, nullif retorna null porque 10 é igual a 10. Na segunda consulta, nullif retorna 20 porque 20  é diferente de 30. Esta função é útil para manipular valores nulos ou substituir valores em consultas SQL com base em condições específicas.

Você também pode usar um nullif dentro de um coalesce, veja o exemplo: https://l1nq.com/2saeN

Compartilhe
Comentários (0)