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