J'ai le code suivant pour renvoyer plusieurs valeurs pl/python:Comment diviser un type en plusieurs colonnes dans 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 sortie est:
column
(egg,4)
Ce que je veux faire est de diviser la sortie en deux colonnes distinctes. Comme ceci:
column, column2
egg, 4
Comment faire? Googled pendant 1 heure m'a obtenu nulle part. J'espère donc que je vais ajouter quelques mots-clés de recherche à la fin: retour plusieurs valeurs multiples résultats multiples colonnes unnest liste unnest mis
Votre code fonctionne, mais fais J'ai vraiment besoin d'un sous-select pour faire ça? J'étais si proche avec make_pair ('egg', 4) .name, mais ça n'a pas marché. – David
Vous pouvez dire 'select (make_pair ('egg', 4)). Name', par exemple. Si vous voulez les deux composants, mais seulement pour exécuter la fonction une fois, je pense que vous avez besoin de la sous-sélection. Je vais mettre à jour la réponse. – araqnid
Ne pas avoir à exécuter la fonction plus d'une fois est certainement un objectif. – David