説明
このステートメントは、単一または複数の行データをテーブルとして返すために使用されます。
VALUES はテーブル値構築関数であり、独立したSQLステートメントとして使用することもでき、UNION、EXCEPT、INTERSECT などと組み合わせて使用することができます。
構文
VALUES row_constructor_list [ORDER BY column_designator] [LIMIT number]
row_constructor_list:
ROW(value_list)[, ROW(value_list)][, ...]
value_list:
value[, value][, ...]
column_designator:
column_index
パラメータの説明
| パラメータ | 説明 |
|---|---|
| row_constructor_list | 行コンストラクタのリストであり、カンマで区切られたROW()行コンストラクタ句で構成されます。ROW()は空にすることはできませんが、括弧内の各スカラー値はNULLにすることができます。 |
| value_list | 1つまたは複数のスカラー値のリストです。スカラー値はリテラルまたはスカラー値として解析される式を指定できます。同一のVALUESステートメント内の各ROW()に含まれるvalue_listは、同じ数の値を持たなければなりません。 |
| column_designator | 列を指定します。列の命名規則はcolumn_0、column_1、...です。オプションのORDER BY句を使用して、指定された列に基づいて行をソートします。 |
例
VALUESを使用して、テーブルを出力し、指定された列column_0でソートします。obclient> VALUES ROW(4,6,8), ROW(5,7,9), ROW(1,-2,3) ORDER BY column_0;出力結果の例は次のとおりです:
+----------+----------+----------+ | column_0 | column_1 | column_2 | +----------+----------+----------+ | 1 | -2 | 3 | | 4 | 6 | 8 | | 5 | 7 | 9 | +----------+----------+----------+ 3 rows in setVALUESステートメントは、同一列内のデータが複数のデータ型であることをサポートしています。obclient> VALUES ROW("q", 23, '2022-12-18'), ROW(87, "x+z", 92.6), ROW(25.0009, "Well Smith", '{"a": 11, "b": 55}');出力結果の例は次のとおりです:
+----------+------------+--------------------+ | column_0 | column_1 | column_2 | +----------+------------+--------------------+ | q | 23 | 2022-12-18 | | 87 | x+z | 92.6 | | 25.0009 | Well Smith | {"a": 11, "b": 55} | +----------+------------+--------------------+VALUESとUNIONを一緒に使用すると、機能的にSELECTと同等になります。obclient> SELECT 11,22 UNION SELECT 33,44; +------+------+ | 11 | 22 | +------+------+ | 11 | 22 | | 33 | 44 | +------+------+ 2 rows in set obclient> VALUES ROW(11,22) UNION VALUES ROW(33,44);出力結果の例は次のとおりです:
+----------+----------+ | column_0 | column_1 | +----------+----------+ | 11 | 22 | | 33 | 44 | +----------+----------+ 2 rows in set