技術メモのかけら

内容はもとより調べたことすら忘れてしまうので個人的なメモです。とにかく短く、結論だけ書いていきます。

SQL中のVALUES

SELECT句が使える場所ならどこでもVALUESが使えるとのこと。

-- select 1,'one' union select 2,'two' union select 3,'three'と等価
postgres=# VALUES (1, 'one'), (2, 'two'), (3, 'three');
 column1 | column2
---------+---------
       1 | one
       2 | two
       3 | three
(3 rows)

asで別名をつければテーブルを指定できるところに使える。列名はデフォルトでcolumn1, column2のようになる。

postgres=# select column1,column2 from (values ('あいうえお',1),('かきくけこ',2),('さしすせそ',3)) as t;
  column1   | column2
------------+---------
 あいうえお |       1
 かきくけこ |       2
 さしすせそ |       3
(3 rows)

列名をつけることも可能です。

select no,hiragana from (values ('あいうえお',1),('かきくけこ',2),('さしすせそ',3)) as t(hiragana,no);