MW211 EXIT

devlog
PostgreSQL/generate_seriesの別名
2018年09月18日
generate_series()で別名を定義する場合には、
表と列の両方を同時に定義してやればよい。
┌──────────────────────────────────────┐
│SELECT "表"."列"                                                            │
│    FROM "generate_series"(1, 3) AS "表"("列");                             │
└──────────────────────────────────────┘

もしも、表だけ別名を定義してしまうと列名も表と同名となってしまう。
┌──────────────────────────────────────┐
│SELECT "表"."表"                                                            │
│    FROM "generate_series"(1, 3) AS "表";                                   │
└──────────────────────────────────────┘
なので、「"表"."generate_series"」とかはエラーとなる。

クロス結合する場合には、以下のような感じでできる。
┌──────────────────────────────────────┐
│SELECT "表A"."列A",                                                         │
│       "表B"."列B"                                                          │
│    FROM "generate_series"(1, 3) AS "表A"("列A")                            │
│        CROSS JOIN  "generate_series"(1, 2) AS "表B"("列B")                 │
│    ORDER BY  "表A"."列A" ASC,                                              │
│              "表B"."列B" ASC                                               │
└──────────────────────────────────────┘
分類:PostgreSQL