今天用到了named_struct类型,主要用这个函数做json拼接
select named_struct(
'"supplier_sku_id"',supplier_sku_id,
'"supplier_id"',t1.supplier_id,
'"prefee_rate"',prefee_rate,
'"order_rate"',order_rate,
'"goRate"',go_rate,
'"completeRate"',compliance_prefee_rate
) as detail
from table1
特别记录下这个格式,如果是这个函数的返回值存储,存储类型要这样,比如我写了5个字段,创建的字段类型是:
struct<supplier_sku_id:bigint,supplier_id:bigint,prefee_rate:double,order_rate:double,goRate:double,completeRate:double>
函数说明:
用途:使用给定的name/value
列表建立STRUCT。
参数说明:
value
:value
可为任意类型。name
:指定的STRING类型的Field名称。此参数为常量。
返回值说明:返回STRUCT类型。Field的名称依次为name1,name2,…
。
最后结构体里面的key是以建表的语句为准。
如果用的是阿里云,建表时候也需要指定 set odps.sql.type.system.odps2 = true;
不指定的话放进去就是个地址值