Skip to content

NULL – comparando valores

20/08/2012

Ao compararmos campos com valores nulos em codições WHERE, devemos tomar certos cuidados.
Exemplos:



DECLARE @Pessoa TABLE (
	Id INT, 
	Nome varchar(60)
)

-- inclusão de registros com valor NULL para a coluna "Nome"
INSERT @Pessoa 
VALUES(1, 'Jose'), (2, 'Maria'), (3, null)


-- contagem de registros, comparando com valor null 
SELECT COUNT(*) as qtd 
FROM @Pessoa 
WHERE Nome = null

--> Resultado: qtd = 1


-- mesmo resultado comparando com IS NULL
SELECT COUNT(*) as qtd 
FROM @Pessoa 
WHERE Nome is null

--> Resultado: qtd = 1


-- Vamos mudar o comportamento dos operadores de comparação ( = e <> ) para valores nulos


-- verificando o valor da sessão para ANSI_NULLS
-- resultado será = 0, devido ao valor padrão ser OFF
select 	SESSIONPROPERTY ( 'ANSI_NULLS' )


-- definindo para ON
SET ANSI_NULLS ON


SELECT COUNT(*) as qtd 
FROM @Pessoa 
WHERE Nome = null

--> Resultado: qtd = 0 (zero..)

Anúncios

From → Transact-SQL

Deixe um comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: