Tengo el siguiente código para devolver múltiples valores de PL/Python:¿Cómo dividir un tipo en múltiples columnas en 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;
La salida es:
column
(egg,4)
Lo que quiero hacer es dividir la salida en dos columnas separadas. De esta manera:
column, column2
egg, 4
¿Cómo puedo hacer esto? Busqué en Google por 1 hora no me llevó a ninguna parte. Así que espero que voy a añadir algunas palabras clave de búsqueda en el final: devolver múltiples valores múltiples resultados de varias columnas UNNEST lista UNNEST establece
funciona su código, pero haz Realmente necesito una sub selección para hacer esto? Estaba muy cerca de make_pair ('egg', 4) .name, pero eso no funcionó. – David
Puede decir 'select (make_pair ('egg', 4)). Name', por ejemplo. Si quiere ambos componentes pero solo para ejecutar la función una vez, creo que necesita la sub selección. Actualizaré la respuesta. – araqnid
No tener que ejecutar la función más de una vez es definitivamente un objetivo. – David