腾讯云数据仓库 TCHouse-X VALUES 语句

VALUES 子句不仅可以作为 INSERT 语句的一部分,还可以作为独立的语句或与 SELECT 结合使用。它允许在不创建物理表的情况下,动态构造一个内存中的数据集。

相关产品
腾讯云数据仓库 TCHouse-X 产品页,含版本规格、价格与购买入口。

一、独立使用

VALUES (row)[, (row), …];row ::= column [, column, …]

二、派生表使用

SELECT select_list FROM (VALUES (row)[, (row), …]) [AS alias[(col_alias1, …)]];row ::= column [, column, …]

三、使用规则与约束

·结构一致性: 每一行 (row) 必须包含相同数量的列 (column)。

·类型兼容性: 各行中对应列的数据类型必须相互兼容(如数值型与浮点型可兼容,日期字符串与时间戳可兼容)。

·命名机制:

·若未显式指定派生表名,系统默认分配别名 expr$0。建议使用 AS 关键字显式命名以增强代码可读性。

·默认列名遵循 派生表名.expr$N 规范(其中 N 为从 0 开始起始的列索引)。

·内容灵活: 列的内容可以是常量、变量或表达式。

四、示例

构造匿名数据集(默认命名):

— 构造一个 2 行 3 列的派生表,使用默认列命名SELECT * FROM (VALUES (4,5,6), (7,8,9));– 输出:– +——————-+——————-+——————-+– | `expr$0`.`expr$0` | `expr$0`.`expr$1` | `expr$0`.`expr$2` |– +——————-+——————-+——————-+– | 4 | 5 | 6 |– | 7 | 8 | 9 |– +——————-+——————-+——————-+

指定派生表别名:

— 通过 AS 关键字定义表名,简化引用路径。SELECT * FROM (VALUES (4,5,6), (7,8,9)) AS t(x,y,z);– 输出结果:– +————–+————–+————–+– | `t`.`expr$0` | `t`.`expr$1` | `t`.`expr$2` |– +————–+————–+————–+– | 4 | 5 | 6 |– | 7 | 8 | 9 |– +————–+————–+————–+

自定义列别名:

— 在定义表名的同时,通过括号显式指定每一列的名称。SELECT * FROM (VALUES (4,5,6), (7,8,9)) AS t(x, y, z);– 输出结果:– +——+——+——+– | x | y | z |– +——+——+——+– | 4 | 5 | 6 |– | 7 | 8 | 9 |– +——+——+——+

赞 (0)
上一篇 4天前
下一篇 4天前