Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
791
Assunto : SQL Server
Titulo: Cuidado com NULLs em sub-queries

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Observem estes selects abaixo. Parecem não ter segredo nenhum a esconder, correto ?

select count(*) from pessoas where email in (select email from lista)
select count(*) from pessoas where email not in (select email from lista)

Vamos considerar o seguinte :

Pessoas : 200 registros
Lista : 1000 registros

Agora o resultado :

1a) 70
2a) 0

Então a pergunta : Onde foram parar 140 registros ?

Este problema curioso mas perfeitamente normal pode com certeza fundir a cabeça de muitos programadores que não lembrem do significado do valor NULL em um banco de dados.

NULL : Identifica um valor desconhecido, o valor pode existir ou não no mundo real, mas não se tem conhecimento de seu valor nos dados do sistema.

Eis ai o segredo oculto, o significado do NULL : Existindo um valor NULL na tabela LISTA, a 1a query consegue ser respondida, indicando os registros que estão na tabela lista, mas a 2a query tem um resultado inviável : Como dizer quantos registros não estão lá se existem valores NULL ? Se você levar em consideração o significado do NULL, verá que não há como saber quantos e-mails não estão na lista, simplesmente porque existem valores na lista que são desconhecidos. De fato, se levarmos ao pé da letra nem o valor da 1a query é preciso, poderiam haver mais de 70 pessoas na lista.



Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 4/3/2006 8:42:00 AM
nome: Marcelo
email: marceloloky@gmail.com
comentário:
Olá,

Gostaria de informações quanto a treinamento para iniciantes em SQL server, pois tenho muito interesse na àrea de Banco de Dados.

Obrigado!



 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br