Select com IN firebird 3.0 não retorna registros

01/04/2019

0

Olá amigos, estou com um probleminha e precisando de um help.

tenho uma tabela chamada PESSOAS onde tenho um campo chamado PES_PAPEL VARCHAR(10) onde salvo alguns valores que são chave primaria da tabela PAPEIS.
No campo PES_PAPEL tenho seguinte registro: 0,1,4,5
Na tabela PAPEIS tenho os seguintes registros:
PAS_ID PAS_DESCRICAO
0 Cliente
1 Fornecedor
2 Colaborador
3 Tecnico
4 Representante
5 Prestador de Serviços

Quando faço o select com IN ele não trás os dados da coluna PAS_DESCRICAO.
select
    pessoas.pes_papel,
    (select list( papeis.pas_descricao,'','') from papeis where  cast(papeis.pas_id as varchar(2)) in(pessoas.pes_papel))
from pessoas
Sidney Abreu

Sidney Abreu

Responder

Posts

01/04/2019

Menguelly Costa

Olá amigos, estou com um probleminha e precisando de um help.

tenho uma tabela chamada PESSOAS onde tenho um campo chamado PES_PAPEL VARCHAR(10) onde salvo alguns valores que são chave primaria da tabela PAPEIS.
No campo PES_PAPEL tenho seguinte registro: 0,1,4,5
Na tabela PAPEIS tenho os seguintes registros:
PAS_ID PAS_DESCRICAO
0 Cliente
1 Fornecedor
2 Colaborador
3 Tecnico
4 Representante
5 Prestador de Serviços

Quando faço o select com IN ele não trás os dados da coluna PAS_DESCRICAO.
select
    pessoas.pes_papel,
    (select list( papeis.pas_descricao,'','') from papeis where  cast(papeis.pas_id as varchar(2)) in(pessoas.pes_papel))
from pessoas


Mas função 'in' voce coloca quando vai fazer mais de um filtro ex: pes_papel in ( 1,2) neste caso pelo que entendi esta direto.
Já tentou colocar "and"
Responder

01/04/2019

Sidney Abreu

Olá amigos, estou com um probleminha e precisando de um help.

tenho uma tabela chamada PESSOAS onde tenho um campo chamado PES_PAPEL VARCHAR(10) onde salvo alguns valores que são chave primaria da tabela PAPEIS.
No campo PES_PAPEL tenho seguinte registro: 0,1,4,5
Na tabela PAPEIS tenho os seguintes registros:
PAS_ID PAS_DESCRICAO
0 Cliente
1 Fornecedor
2 Colaborador
3 Tecnico
4 Representante
5 Prestador de Serviços

Quando faço o select com IN ele não trás os dados da coluna PAS_DESCRICAO.
select
    pessoas.pes_papel,
    (select list( papeis.pas_descricao,'','') from papeis where  cast(papeis.pas_id as varchar(2)) in(pessoas.pes_papel))
from pessoas


Mas função 'in' voce coloca quando vai fazer mais de um filtro ex: pes_papel in ( 1,2) neste caso pelo que entendi esta direto.
Já tentou colocar "and"


A expressão IN acredito que seja a mais recomendada, e o AND não fica dinâmico, fica estático
Responder

02/04/2019

Ricardo Diniz

O uso de IN nesse caso não é recomendado.
Tente utilizar o EXISTS.

At,
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar