🐘

postgreSQLのvaluesを使おう

に公開
2026/03/10

テストがたくさんできるぜ。

select a, b from (values (1, 2), (3, 4)) as t(a, b);

https://www.postgresql.jp/document/17/html/queries-values.html

https://www.postgresql.jp/document/17/html/sql-values.html

検証用のクエリをかきたいけどcreate tableとかはしたくない。
そんなとき使うのがこれ。

valuesの後ろに直にカンマ区切りの括弧を入れるのがポイント。
ぶっちゃけわかりづらい。
あと、テーブル名と行の名前をasで指定しておくこと。
insert intoのvaluesのことらしい。
検証をたくさんできるぜ。

ひどい記事でごめんなさい。

追記

valuesが単体で使えることが発覚しました。これ、クエリだったんですね。

values (1,2), (3,4)
with a (v1, v2) as (values (1,2), (3,4))
select * from a;

ついでにテストデータをおいておきます。

-- written by gemini
with polys (id, area_name, geom) AS (
  values 
    (1, '東京駅丸の内駅舎', ST_GeomFromText('POLYGON((139.766 35.681, 139.768 35.681, 139.768 35.682, 139.766 35.682, 139.766 35.681))', 4326)),
    (2, '丸ビル・新丸ビル付近', ST_GeomFromText('POLYGON((139.763 35.681, 139.765 35.681, 139.765 35.683, 139.763 35.683, 139.763 35.681))', 4326)),
    (3, '八重洲側口エリア', ST_GeomFromText('POLYGON((139.769 35.680, 139.771 35.680, 139.771 35.682, 139.769 35.682, 139.769 35.680))', 4326)),
    (4, '皇居外苑(和田倉門付近)', ST_GeomFromText('POLYGON((139.759 35.681, 139.761 35.681, 139.761 35.683, 139.759 35.683, 139.759 35.681))', 4326)),
    (5, '有楽町・鍛冶橋交差点方面', ST_GeomFromText('POLYGON((139.766 35.676, 139.768 35.676, 139.768 35.678, 139.766 35.678, 139.766 35.676))', 4326))
)
select * from polys;

Discussion