セットを返す関数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;
参照: