Quero comparar uma lista de IDs separados por vírgula com o resultado de uma consulta, algo assim:
select * from (values (2201322723),
(2201318904),
(2201299380),
(2164969641),
(5682476934),
(2201314720),
) as t(object_id)
EXCEPT
select object_id from star.dim_partner where entity = 'partners' and is_active is true;
Os trabalhos acima, no entanto, exigia que eu usasse um editor de texto com suporte baseado em colunas para adicionar colchetes (a lista era realmente um pouco mais longa).
Existe uma maneira mais fácil/melhor de converter uma lista separada por vírgulas em uma tabela (temp) com o PostgreSQL?
um pouco como:
select item as object_id from ARRAY[6058271246, 2201299240, 1801904030, 2097401903];
?
Isso me permitirá recortar e colar qualquer lista de IDs entre os colchetes.
Você pode usar
string_to_array()
junto comunnest()
Ou se você estiver usando o Postgres 14 ou posterior, isso pode ser simplificado para