セットを返す関数unnest()
SELECT
に ラファエルが提案するように
Postgres 9.3以降、も使用できます。 LATERAL
これに参加してください。これは、セットを返す関数をFROM
に配置するためのよりクリーンで標準に準拠した方法です。 SELECT
ではなくリスト リスト:
SELECT name, value
FROM tbl, unnest(values) value; -- implicit CROSS JOIN LATERAL
1つの微妙な違い:これは空/NULLvalues
の行を削除します unnest()
以降の結果から 行なしを返します 、FROM
では同じものがNULL値に変換されます リストし、とにかく返されます。 100%同等のクエリは次のとおりです。
SELECT t.name, v.value
FROM tbl t
LEFT JOIN unnest(t.values) v(value) ON true;
参照: