Ho il seguente codice per restituire più valori da pl/python:Come dividere un tipo in più colonne in Postgres?
CREATE TYPE named_value AS (
name text,
value integer
);
CREATE or replace FUNCTION make_pair (name text, value integer)
RETURNS named_value
AS $$
return [ name, value ]
$$ LANGUAGE plpythonu;
select make_pair('egg', 4) as column;
L'output è:
column
(egg,4)
Quello che voglio fare è quello di dividere l'output in due colonne separate. Mi piace:
column, column2
egg, 4
Come faccio? Cercata su Google per 1 ora non mi ha portato da nessuna parte. Quindi spero di aggiungere alcune parole chiave di ricerca, alla fine: ritorno più valori più risultati più colonne unnest lista unnest impostato
Il tuo codice funziona, ma fallo Ho davvero bisogno di una sotto-selezione per farlo? Ero così vicino a make_pair ('egg', 4) .name, ma non funzionava. – David
Puoi dire 'select (make_pair ('egg', 4)). Name', per esempio. Se vuoi entrambi i componenti ma solo per eseguire la funzione una volta, penso che tu abbia bisogno della sottoselezione. Aggiornerò la risposta – araqnid
Non dover eseguire la funzione più di una volta è sicuramente un obiettivo. – David