PostgreSQLで無から複数行の任意のデータをSELECTする
テーブルも何も無い所から一行の固定値をSELECT(複数カラムもいける)
postgres=# SELECT 'ゆゆ式' AS title, '三上小又' AS Author; title | author --------+---------- ゆゆ式 | 三上小又 (1 行)
これはよくやる(?)気がするんだけど、何も無いところから複数行SELECTするのってどうやるんだっけと思ってちょっと調べたら…
VALUESを使えば良いのか。
postgres=# VALUES ('野々原'),('日向'),('櫟井'); --必要最小限の VALUES コマンド column1 --------- 野々原 日向 櫟井 (3 行)
こんな感じでVALUESだけでテーブルが返ってくるんだけど敢えてSELECT文に組み込むならFROM句の中で使ってこうなる。
postgres=# SELECT * FROM (VALUES ('野々原'),('日向'),('櫟井')) AS yuyushiki(name); name -------- 野々原 日向 櫟井 (3 行)
VALUES を FROM 句の中で使用する場合には、 AS 句が必須となることに注意しましょう。
テーブルなので、結合もできる。
postgres=# SELECT * FROM (VALUES ('野々原'),('日向'),('櫟井')) AS family(family_name), postgres-# (VALUES ('ゆずこ'),('縁'),('唯')) AS first (first_name); family_name | first_name -------------+------------ 野々原 | ゆずこ 野々原 | 縁 野々原 | 唯 日向 | ゆずこ 日向 | 縁 日向 | 唯 櫟井 | ゆずこ 櫟井 | 縁 櫟井 | 唯 (9 行)
なるほど…なるほど…