繁体   English   中英

雪花 SQL → 列 JSON 值进入表

[英]Snowflake SQL → Column JSON values into table

我的 TRR 表由每行中的 JSON 值组成(我从 TRR 中删除了 null 行),我想将这些 JSON 行拆分为具有相应列的表

具有 JSON 值的 TRR

每行可以有多个条目:展开一行示例

我需要的是以下内容(无需在目标表中保留行号):

(排) 折扣 ID points_text 积分 src_trl_code src_trl_id trn_id
(1) 0 1113302 TIERS_PTS:1 0 CCU_L_01 108 743156
(2) 0 1112948 TIERS_PTS:1 0 CCU_L_01 108 743430
(3) 0 2552076 NULL 0 CCU_L_01 108 402953
(4) 0 746255 状态:50 0 CCU_L_01 659 503055
(4) 0 746254 微笑:50 0 CCU_L_01 108 503055
(...)

工作代码:

WITH CTE AS ( SELECT  array_construct( object_construct( 'discount', 0, 'ID', 
1113302, 'points', 0, 'points text', 'TIERS_PTS:1', 'secirlcode', 'CCU_L_01', 
'srcirlid', 108, 'TRN_ID', 743156 ) ,
object_construct( 'discount', 4, 'ID', 1114302, 'points', 1, 'points text', 
'TIERS_PTS:5', 'secirlcode', 'CCU_L_01', 'srcirlid', 168, 'TRN_ID', 743156 ) 
) YOUR_ARRAY )

SELECT 
  HI.VALUE:ID
, HI.VALUE:TRN_ID
, HI.VALUE:points
, HI.VALUE:"points text"
, HI.VALUE:secirlcode 
FROM 
   CTE
 , LATERAL FLATTEN(INPUT=> YOUR_ARRAY) HI ;

使用的功能:

证明它有效:

在此处输入图像描述

起点相同:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM