Select com IN firebird 3.0 não retorna registros

SQL

Banco de Dados

Firebird

01/04/2019

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

Curtidas 0

Respostas

Menguelly Costa

Menguelly Costa

01/04/2019

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"
GOSTEI 0
Sidney Abreu

Sidney Abreu

01/04/2019

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
GOSTEI 0
Ricardo Diniz

Ricardo Diniz

01/04/2019

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

At,
GOSTEI 0
POSTAR