NOT IN

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Ter, 13 Nov 2007 11:50 am

Pessoal essa tarde teve um DBA aqui na empresa e tinha um select que não estava devolvendo o resultado esperado, daí ele usou essa coisa, rs NOT IN alguém poderia de forma pratica me dizer para que serve?

rs
Código: Selecionar todos
SELECT *
FROM TITULO_A_RECEBER TT WHERE tt.nrultimo_envio = '77'
AND TT.DTVENCIMENTO = '30/11/2007'
AND TT.CDCLIENTE NOT IN (select tt.cdcliente
from titulo_a_receber tt, pessoa p, usuario u, endereco e, cidade c
where
tt.nrregistro_cliente = p.nrregistro and
tt.nrregistro_cliente = u.nrregistro_usuario and
tt.nrregistro_cliente = e.nrregistro and
tt.dtvencimento = '30/11/2007'and)
carlos12
Localização: rio

Mensagemem Ter, 13 Nov 2007 12:01 pm

Brother,

NOT IN: Significa que não esteja entre (ou, na lista).

Por exemplo,
Você tem uma tabela de produtos, onde se tem o código do produto e o grupo deste produto.

Você tem que realizar um select e, retornar TODOS os registros, EXCETO os do grupo 99 e 100.

Daí você pode utilizar o NOT IN para distinguir este grupo que não deseja exibir os itens.

Exemplo:
Código: Selecionar todos
         SELECT *
     FROM  TB_PRODUTOS
    WHERE CD_GRUPO_PROD NOT IN (99,100);
   

Ou, passando-se uma tabela de valores (conforme teu exmeplo acima):
Código: Selecionar todos
    SELECT *
      FROM TB_PRODUTOS
     WHERE CD_GRUPO_PROD NOT IN (SELECT CD_GRUPO                                   FROM TAB_GRUPO_PRODUTOS);
            
            



Nota importante: Por questões de performance, às vezes se faz necessária a utilização das funções "EXISTS" ou "NOT EXISTS", ao invés de NOT IN, mas, tudo isso depende do custo da tua consulta.
Trevisolli
Localização: Araraquara - SP

Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Mensagemem Ter, 13 Nov 2007 3:53 pm

Cara brigadão pelo esclarecimento valews de verdade
carlos12
Localização: rio

Mensagemem Ter, 13 Nov 2007 4:11 pm

Imagin brother,

Precisando, estamos ai.
Trevisolli
Localização: Araraquara - SP

Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes