Skip to main content

VALUES 子句

在 RisingWave 中,VALUES 子句用于生成一个或多个数据行作为表表达式。在 SQL 查询中,它通常用于创建临时表或向表中插入数据。

RisingWave 中 VALUES 子句的句法如下:

VALUES (expression1, expression2, ...),
(expression1, expression2, ...),
...

此处,每组用括号括起的表达式代表一行数据。表达式的数量必须与要创建的表或视图中的列数相匹配。

创建视图或物化视图时,可以使用 VALUES 子句构造一个临时表,并将该表分配给视图或物化视图。例如:

CREATE MATERIALIZED VIEW mv (id, name) AS VALUES (1, 'John'), (2, 'Jane'), (3, 'Bob');

VALUES 子句还可用于更复杂的查询(例如子查询或连接),以生成临时表或将数据插入到现有表中。例如:

CREATE MATERIALIZED VIEW join_mv AS
WITH info(number, job) AS (VALUES (1, 'Writer'), (2, 'Software Engineer'), (3, 'Accountant'))
SELECT * FROM mv JOIN info ON mv.id = info.number;

要查看 join_mv 中的值:

SELECT * FROM join_mv;
-- 结果
id | name | number | job
----+------+--------+-------------------
2 | Jane | 2 | Software Engineer
3 | Bob | 3 | Accountant
1 | John | 1 | Writer