副選択を使用できますか?
postgres=# select ar[1], ar[2] from (select string_to_array('a b c', ' ') ar) as sq;
ar | ar
----+----
a | b
(1 row)
これでも、(すでに行っているように)各列を明示的に抽出する必要があります。配列に抽出された要素よりも多くの要素がある場合、それらは失われます。要素が少ない場合、欠落している列はNULL
になります。 。
編集:私はすべてを副選択でラップすると思います。内側の副選択により、目的の行が生成されます 、外側の選択で内側のクエリを目的の列に投影します :
SELECT subquery1.a, subquery1.b, subquery1.c,
myfunction_result[1], myfunction_result[2]
FROM ( SELECT table1.a, table1.b, table1.c,
MyFunction(table1.a, table1.b, table1.c) as myfunction_result
FROM table1 INNER JOIN table2 using(b)
WHERE ... GROUP BY table1.a, table1.b, table1.c
) AS subquery1;
内側と外側の選択は、table1
を適切に相関させます 参照。