説明
このステートメントは、単一行または複数行のデータをテーブルとして返すために使用されます。
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