Diferenças entre IS NULL e COALESCE numa pesquisa SQL

Compartilhe:

A principal diferença de funcionalidade é que o COALESCE aceita n argumentos, retornando o primeiro com valor não NULL entre eles. O ISNULL só aceita dois argumentos, um possivelmente NULL, e outro para retornar se o primeiro for NULL.

Por exemplo, isto só dá para fazer com COALESCE:

SELECT COALESCE(col1, col2, col3, col4) AS valor;

Isso seleciona o primeiro valor que não seja nulo entre as quatro colunas passadas. É sempre bom lembrar que COALESCE faz parte do padrão da linguagem SQL, enquanto o ISNULL não faz.

LEIA TAMBÉM:

Outra diferença: o ISNULL retorna o tipo do seu primeiro argumento, enquanto o COALESCE retorna o tipo de maior precedência entre os passados.

Abre em nova aba

DICA:Quanto ao desempenho entre a duas,ISNULL é a melhor escolha em sub queries (sub consultas)

Vamos aos exemplos:

As principais diferenças entre eles incluem:

  1. COALESCE é padrão SQL-ANSI e ISNULL é implementação Microsoft (T-SQL).Estas diferenças entre as duas funções são bastante simples.
  2. COALESCE pode aceitar vários parâmetros,e ISNULL só pode aceitar dois parâmetros,o primeiro,que é o campo a ser verificado,e o segundo que será o valor que deverá inserir em um registro nulo.

No exemplo abaixo tanto faz usar COALESCE OU ISNULL,iremos ter o mesmo resultado. Para fins de demonstração criarei uma tabela temporária e irei inserir alguns registros nela,e logo em diante farei um select aonde irá pegar somente os registros não nulos das colunas “primeiro_email,e segundo email”.

CREATE TABLE #EMAIL
(ID TINYINT IDENTITY,PRIMEIRO_EMAIL VARCHAR (50) NULL,SEGUNDO_EMAIL VARCHAR (50) NULL)
GO
INSERT INTO #EMAIL VALUES ('j.vilar12@gmail.com',null)
INSERT INTO #EMAIL VALUES ('abc@gmail.com',null)
INSERT INTO #EMAIL VALUES ('def@hotmail.com',null)
INSERT INTO #EMAIL VALUES (null,'tecnologia@gmail.com')
INSERT INTO #EMAIL VALUES (null,'vilar@gmail.com')
INSERT INTO #EMAIL VALUES (null,'abcdf@gmail.com')
INSERT INTO #EMAIL VALUES (null,'12345@hotmail.com')
INSERT INTO #EMAIL VALUES ('mariana@uol.com.br',null)
SELECT COALESCE (PRIMEIRO_EMAIL,SEGUNDO_EMAIL) AS EMAIL
FROM #EMAIL

Constrains com IS NULL

Constraints,que tem a capacidade de determinar as regras que as colunas de nossas tabelas terão. Antes de configurar o Constraints,vamos verificar todos os registros que tiverem observações nulas e vamos apagá-los. Queremos selecionar todas as observações que são nulas,são nulas,SÃO NULAS,IS NULL :

SELECT * FROM compras WHERE observacoes IS NULL;

+—-+——–+————+————-+———-+
| id | valor | data | observacoes | recebida |
+—-+——–+————+————-+———-+
| 47 | 150.00 | 2016-01-04 | NULL | 1 |
+—-+——–+————+————-+———-+
1 row in set (0,00 sec)

Vamos excluir todas as compras que tenham as observações nulas:

DELETE FROM compras WHERE observacoes IS NULL;
Query OK,1 row affected (0,01 sec)

LEIA TAMBÉM:21 comandos SQL essenciais para programadores e BI

Curso Banco de Dados

Compartilhe:

Ramos da Informática
Ramos da Informáticahttps://ramosdainformatica.com.br
Ramos da Informática é um hub de comunidade sobre linguagens de programação, banco de dados, DevOps, Internet das Coisas, tecnologia da indústria 4.0, Cyber Segurança e Startups.

RECENTES

Claude Sonnet 4.5: Mais Avançado para Programação e Automação

A Anthropic acaba de lançar o Claude Sonnet 4.5,...

AP2 do Google: Desenvolva Pagamentos para agentes de IA

O Google lançou o Agent Payments Protocol (AP2), um...

Curso gratuito de GitHub Copilot para devs e estudantes

A Microsoft abriu as inscrições para o primeiro Bootcamp...

Santander e a Alura oferecem 60.000 bolsas em carreira de tecnologia

Quer dar um salto na sua carreira? O Santander Imersão Digital está...

Google Tradutor desafia o Duolingo com novas ferramentas de aprendizagem de idiomas

O Google está lançando um novo recurso experimental com...

A peça que faltava para agentes de IA autônomos.

Este artigo foi originalmente publicado em: https://www.linkedin.com/newsletters/ezine-dev-ramos-da-inform%25C3%25A1tica-6947960536550526976/ A inteligência...
Newsletter semanal no LinkedIn
EZine Dev Ramos da Informática
Grandes dicas em JavaScript, Node, React, Next, Banco de Dados & IA.
Assinar grátis
Abre em nova aba
spot_img