O problema que o ID da ‘tabela_a’ é inteiro e a o resultado da ‘lista_ids’ é string(character varying),
Ex do retorno da tabela_b: (“1234,1235,1236,1237”).
SELECT * FROM tabela_a WHERE id in ("1234,1235,1236,1237"); = erro cast.
Para não precisar quebrar a lista_ids e buscar por um FOR ou WHILE(FUNÇÃO), existe alguma solução!
Obs: estou usando isso em uma função e onde o Sub SELECT é oriundo de uma variável;
ErickRAR,
Obrigado pela resposta.
A saída do postgres foi:
[quote]ERRO: função to_char(character varying, unknown) não existe
SQL state: 42883
Hint: Nenhuma função corresponde com o nome e os tipos de argumentos informados. Você precisa adicionar conversões de tipo explícitas.
Character: 596
[/quote]
Preciso converter a lista de ‘character varying’ para inteiros, o resultado vem (“1234,1235,1236,1237”) onde deveria vir sem as aspas (1234,1235,1236,1237);
Utilizando subQuery e o id inteiro concatenado com carcater coringa para a busca: [quote]like (’%,’||id||’,%’).[/quote]
Acredito não ser a melhor solução mas baixou de 1,4s para 40ms.
tempo aceitável!
Obrigado pelas coloborações ErickRAR e AbelBueno!