SQL COALESCE(): Como determinar valores não NULL

A função SQL COALESCE() é utilizada para determinar o primeiro valor dentro de uma lista que não é NULL. Assim, a função é uma versão simplificada de uma instrução CASE correspondente.

O que é a função SQL COALESCE()?

A palavra-chave NULL em SQL representa dados que não possuem valor. Esse caso ocorre, por exemplo, quando ainda você não conhece um valor específico em uma tabela e, portanto, não preenche o campo correspondente. Isso não significa necessariamente que o campo correspondente não tem valor, mas pode simplesmente significar que você não sabe qual é o valor. Embora esses valores NULL não sejam prejudiciais à primeira vista, se acumularem em um banco de dados, podem torná-lo confuso. A função SQL COALESCE() é usada para retornar o primeiro valor em uma lista que não é NULL.

vServer (VPS) da IONOS

Hospedagem VPS poderosa e de baixo custo para rodar suas aplicações sob medida, com assistente pessoal e suporte 24 horas.

  • Armazenamento 100% SSD
  • Pronto em 55 segundos
  • Certificado SSL

Sintaxe e requisitos de SQL COALESCE()

A sintaxe de SQL COALESCE() é bem simples. Ela é apresentada da seguinte forma:

COALESCE(valor1, valor2,, n)
sql

Você precisa de pelo menos dois argumentos. Se todos os argumentos tiverem o valor NULL, o resultado também será NULL.

Exemplo de uso de SQL COALESCE()

Você pode rapidamente entender o funcionamento básico por meio de um exemplo simples. No código a seguir, inserimos vários argumentos e usamos o comando SQL SELECT para verificá-los.

SELECT COALESCE(NULL, NULL, NULL, 17, 49, NULL, 13, 15, 14, 15);
sql

A saída neste caso será “17”, pois este é o primeiro valor que não é NULL.

Combinar SQL COALESCE()

A função COALESCE() é muito mais útil quando combinada com outras operações. Para ilustrar, imaginemos uma tabela chamada “Funcionários”. Esta tabela contém as colunas “Nome”, “Localidade” e “Data de Nascimento”. Ela se parece com isso:

Nome Localidade Data de Nascimento
Pedro Moura Cascavel 10.04.1967
Sabrina Souza Cascavel 27.07.1989
Sebastião Ferreira Caldas Novas
Martin Becker Cascavel 14.04.2001
Sarah Bernardes 02.12.2005

Dois dos registros não estão preenchidos. Embora Sebastião Ferreira tenha uma data de nascimento e Sarah Bernardes tenha um local de residência, essas informações não são conhecidas no momento. Para identificar isso, a função SQL COALESCE() é útil. O código apropriado é:

SELECT Nome,
COALESCE(Localidade, 'À CONSULTAR') AS Localidade,
COALESCE(Data de Nascimento, 'À CONSULTAR') AS Data de Nascimento
FROM Funcionários;
sql

A saída correspondente agora é:

Nome Localidade Data de Nascimento
Pedro Moura Cascavel 10.04.1967
Sabrina Souza Cascavel 27.07.1989
Sebastião Ferreira Caldas Novas À CONSULTAR
Martin Becker Cascavel 14.04.2001
Sarah Bernardes À CONSULTAR 02.12.2005

Alternativas a SQL COALESCE()

A função SQL COALESCE() apresenta sobreposições com uma instrução CASE e é basicamente uma versão abreviada dessa opção de consulta. O código CASE seria assim:

CASE
WHEN valor1 IS NOT NULL THEN valor1
WHEN valor2 IS NOT NULL THEN valor2
WHENIS NOT NULL THENELSE n
END
sql

A função ISNULL também é semelhante à SQL COALESCE(). No entanto, ao contrário da função aqui abordada, ISNULL é avaliada apenas uma vez e não segue as regras do CASE.

Dica

Um servidor que atende exatamente às suas necessidades: Com o SQL Server Hosting da IONOS, você pode optar por MSSQL, MySQL ou MariaDB e se beneficiar de consultorias personalizadas, fortes mecanismos de segurança e uma performance excepcional.

Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top