Tengo esta consulta en postgresql:
COPY (SELECT "UR_16PIX_Chih"."ID_UR", "UR_16PIX_Chih"."IDEDOMUN15", "UR_16PIX_Chih"."PIX1", "UR_16PIX_Chih"."PIX2", "UR_16PIX_Chih"."PIX3", "UR_16PIX_Chih"."PIX4", "UR_16PIX_Chih"."PIX5", "UR_16PIX_Chih"."PIX6", "UR_16PIX_Chih"."PIX7", "UR_16PIX_Chih"."PIX8", "UR_16PIX_Chih"."PIX9", "UR_16PIX_Chih"."PIX10", "UR_16PIX_Chih"."PIX11", "UR_16PIX_Chih"."PIX12", "UR_16PIX_Chih"."PIX13", "UR_16PIX_Chih"."PIX14", "UR_16PIX_Chih"."PIX15", "UR_16PIX_Chih"."PIX16" FROM public."UR_16PIX_Chih" WHERE "UR_16PIX_Chih"."IDEDOMUN15" = '08061') TO '/home/manager/data/Chihuahua/08061.csv' WITH CSV HEADER;
Quiero saber cómo podría reemplazar el valor '08061' con '08062', luego con '08063', luego con '08064', luego con '08065' y así... usando una forma automática. Mientras tanto, solo estoy editando la consulta reemplazando el valor '08061' con los siguientes valores en el editor pgadmin sql, pero necesito una forma de hacerlo automáticamente.
Una opción es una función PL/pgSQL
:
create or replace function c() returns void as $c$ declare r record; begin for r in select distinct "IDEDOMUN15" as i from public."UR_16PIX_Chih" loop execute format($$ copy ( select "ID_UR", ... from public."UR_16PIX_Chih" where "IDEDOMUN15" = '%1$s' ) to '/var/lib/pgsql/%1$s.csv' $$, ri); end loop; end; $c$ language plpgsql;