Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lorena1601

[Resolvido] Pular linha caso nome não exista na tabela

Recommended Posts

Olá, eu tó com um problema, comecei agora com sql e estou tentando montar um pesquisa.

 

Eu tenho uma lista de nomes num txt, e preciso pegar os seus cpf's, mas alguns nomes não fazem parte do grupo.

Vou colocar os nomes e os cpf's lado a lado numa tabela no excel, mas se eu colocoar uma pesquisa básica, vai ter mais nomes que cpf's e de um certo ponto até o fim eles estarão incompativeis um com o outro.

 

O que eu pensei caso não exista o cpf daquele nome, ele pule uma linha.

Tentei algumas formas que ficarão assim, mas nenhuma deu certo:

 

A mais simples:

 

select PF.Cpf
from T_PESSOA_FISICA PF
inner join T_PESSOA PES ON PES.pkPessoa = PF.fkPessoa
where PES.nome = 'ANTONIO CELSO' or
PES.nome = 'JOSE CELSO' OR
PES.nome = 'TONIO CELSO'

 

que retornar isto:

123464564
123145598

 

Eu gostaria que ficasse assim:

123464564

123145598

 

As outras tentativas com case e tal:

 

SELECT PF.NomePai

from T_PESSOA_FISICA PF
right join T_PESSOA PES ON PES.pkPessoa = PF.fkPessoa

where 
PES.nome = 'ANTONIO CELSO' or
PES.nome = 'ANgfgfgfTONIO CELSO CARNEIRO' or
PES.nome = 'EDSON JOSE' 

 

 

 

 

 

select pf.cpf
from t_pessoa_fisica
pf right join t_pessoa pes on pes.id = pf.id
where pf.nome in (´ANTONIO CELSO´, ´lol´,
´TONIO CELSO´);

 

 

select pf.cpf
from t_pessoa_fisica pf inner join t_pessoa pes
case
when pf.nome in ('ANTONIO CELSO', 'LOL', 'ANTONIO CELSO') then
'ok'
else
'null'
end 

 

Ainda nada, alguem pode me dar uma ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites
... mas alguns nomes não fazem parte do grupo. ...

 

 

1) Coloque o "PES.nome" na query

2) Talvez seja o caso de usar outer join, não sei.

3) As linhas em branco se referem as "Pessoas" sem CPF ? Falta o join (T_PESSOA_FISICA PF X T_PESSOA) ?

 

Tente

 

select PF.Cpf , PES.nome
from T_PESSOA_FISICA PF
RIGHT OUTER JOIN T_PESSOA PES ON PES.pkPessoa = PF.fkPessoa
where (PES.nome = 'ANTONIO CELSO' or PES.nome = 'JOSE CELSO' OR PES.nome = 'TONIO CELSO')

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Coloque o "PES.nome" na query

2) Talvez seja o caso de usar outer join, não sei.

3) As linhas em branco se referem as "Pessoas" sem CPF ? Falta o join (T_PESSOA_FISICA PF X T_PESSOA) ?

 

Tente

 

select PF.Cpf , PES.nome
from T_PESSOA_FISICA PF
RIGHT OUTER JOIN T_PESSOA PES ON PES.pkPessoa = PF.fkPessoa
where (PES.nome = 'ANTONIO CELSO' or PES.nome = 'JOSE CELSO' OR PES.nome = 'TONIO CELSO')

 

 

*-------------------*

 

deu certin, era isto mesmo que eu precisava

hehe

 

muito obga *-*

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi... na vdd não deu certo, eu tinha feito para um teste no mysql e tinha dado certinho, mas no Sql Server está dando a mesma coisa.

 

Na verdade, eu quero pular linha quando o nome não existe no banco de dados, ou seja, não existe aquele usuario então não existe o cpf.

 

Eu criei um exp basico no mysql para testar e o seu codigo funcionou nele, mas como é diferente, não funciona no bd que eu preciso, por isso tentei usar o case... :(

você tem mais alguma ideia?

 

obga

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.