数据湖探索 DLI-复杂类型:ROW

时间:2024-12-19 18:36:56

ROW

ROW的字段可是任意所支持的数据类型,也支持各字段数据类型不同的混合方式。

--创建ROW表
create table row_tb (id int,col1 row(a int,b varchar));

--插入ROW类型数据
insert into row_tb values (1,ROW(1,'HetuEngine'));

--查询数据
select * from row_tb; 
 id |     col1     
----|--------------z
  1 | {a=1, b=HetuEngine} 

--字段是支持命名的,默认情况下,Row的字段是未命名的
select  row(1,2e0),CAST(ROW(1, 2e0) AS ROW(x BIGINT, y DOUBLE));
           _col0          |    _col1     
------------------------|--------------
 {1, 2.0} | {x=1, y=2.0} 
(1 row) 

--命名后的字段,可以通过域操作符"."访问
select col1.b from row_tb; -- HetuEngine

--命名和未命名的字段,都可以通过位置索引来访问,位置索引从1开始,且必须是一个常量
select col1[1] from row_tb;   -- 1
support.huaweicloud.com/sqlref-hetuengine-dli/dli_16_0011.html