PostgreSQLでは、VALUES句を使って単独で即席のデータセットを作成したり、サブクエリとして利用することが可能です。この記事では、基本的な使い方や具体例を解説します。
VALUES句の基本構文
VALUES句は、カンマで区切った複数の行を指定して、テーブルのように扱える即席データを作成します。基本構文は次の通りです。
VALUES (値1, 値2, ...), (値3, 値4, ...);
例えば、
VALUES (1, 'Alice'), (2, 'Bob');
は2行のデータを生成します。
VALUES句を単独で使用する例
単独で使用する場合、SELECT文と組み合わせて出力できます。
SELECT * FROM (VALUES (1, 'Alice'), (2, 'Bob')) AS t(id, name);
この例では、idとnameのカラムを持つ一時的なテーブルtとして扱い、SELECTで結果を取得しています。
サブクエリとしてVALUESを利用する例
VALUES句はサブクエリとしても使用可能です。例えば、別のテーブルと結合して即席データと組み合わせることができます。
SELECT t.id, t.name, o.order_date FROM (VALUES (1, 'Alice'), (2, 'Bob')) AS t(id, name) LEFT JOIN orders o ON o.user_id = t.id;
この例では、即席データとordersテーブルを結合し、指定の条件で情報を取得しています。
注意点と応用
VALUES句で作成した即席データは一時的なテーブルとして扱われます。大量データを生成する用途には向かず、主にテストデータや少量の参照データを作成する場合に有用です。
また、サブクエリ内で使用する場合は、必ずエイリアスを付けてカラム名を指定することを推奨します。
まとめ
PostgreSQLのVALUES句を使うと、即席のデータセットを簡単に作成でき、単独でもサブクエリとしても利用可能です。テストデータや結合用の小規模データ生成に便利で、SELECT文と組み合わせて柔軟に活用できます。


コメント