- カテゴリ:
VALUES¶
SELECT ステートメントでは、 FROM 句の VALUES 副次句により、定数のセットを指定して、有限の行セットを形成できます。
( INSERT
ステートメントの VALUES
句については、 INSERT ステートメントのドキュメントをご参照ください。)
構文¶
SELECT ...
FROM ( VALUES ( <expr> [ , <expr> [ , ... ] ] ) [ , ( ... ) ] ) [ [ AS ] <table_alias> [ ( <column_alias> [, ... ] ) ] ]
[ ... ]
table_alias
オプションのエイリアスを使用して、行のセットがテーブルであるかのように名前を付けることができます。
column_alias
オプションの列エイリアスを使用して、列名を指定できます。
expr
各式は定数、または SQL ステートメントのコンパイル中に定数として評価できる式でなければなりません。
ほとんどの単純な算術式と文字列関数はコンパイル時に評価できますが、他のほとんどの式は評価できません。
使用上の注意¶
例¶
VALUES 句は、固定の既知の行セットを生成するのに役立ちます。
SELECT * FROM (VALUES (1, 'one'), (2, 'two'), (3, 'three')); +---------+---------+ | COLUMN1 | COLUMN2 | |---------+---------| | 1 | one | | 2 | two | | 3 | three | +---------+---------+ SELECT column1, $2 FROM (VALUES (1, 'one'), (2, 'two'), (3, 'three')); +---------+-------+ | COLUMN1 | $2 | |---------+-------| | 1 | one | | 2 | two | | 3 | three | +---------+-------+値は、列の「名前」(暗黙)または列の位置のいずれかで参照できることに注意してください。
クエリで複数の VALUES 句を使用している場合、エイリアスを使用してそれらを区別できます。次に例を示します。
SELECT v1.$2, v2.$2 FROM (VALUES (1, 'one'), (2, 'two')) AS v1 INNER JOIN (VALUES (1, 'One'), (3, 'three')) AS v2 WHERE v2.$1 = v1.$1;
列名のエイリアスを指定することもできます。
SELECT c1, c2 FROM (VALUES (1, 'one'), (2, 'two')) AS v1 (c1, c2);