Snowflake cloud data platform 在雪花上展平JSON数据

Snowflake cloud data platform 在雪花上展平JSON数据,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,下面是我试图在snowflake上展平的Json数据 Json文档: } 在这些数据中,我有3名员工及其详细信息,如姓名、子女、居住城市 但其中一名员工安娜·卡列尼娜的子女详细信息不存在,但其他两名员工的子女数据存在 由于缺少儿童详细信息,我无法展平第三次emp数据 以下是我迄今为止所做的尝试: 雪花展平Json代码: select empd.value:kind, empd.value:fullName, empd.value:age, empd.value:gender, --empd

下面是我试图在snowflake上展平的Json数据

Json文档:

}

在这些数据中,我有3名员工及其详细信息,如姓名、子女、居住城市 但其中一名员工安娜·卡列尼娜的子女详细信息不存在,但其他两名员工的子女数据存在

由于缺少儿童详细信息,我无法展平第三次emp数据

以下是我迄今为止所做的尝试:

雪花展平Json代码:

select empd.value:kind,
empd.value:fullName,
empd.value:age,
empd.value:gender,   
--empd.value:phoneNumber,
empd.value:phoneNumber.areaCode, 
empd.value:phoneNumber.number ,
empd.value:children -- flattening childrean 
//chldrn.value:name,
//chldrn.value:gender,
//chldrn.value:age,
//city.value:place,
//yr.value:yearsLived
from my_json emp , lateral flatten(input=>emp.Json_data:empDetails) empd , 
lateral flatten(input=>empd.value:children) chldrn,
//lateral flatten(input=>empd.value:citiesLived) city,
//lateral flatten(input=>city.value:yearsLived) yr
您需要使用外部开关:

如果为FALSE,则输出中将完全忽略任何无法展开的输入行,这些输入行可能是因为无法在路径中访问它们,也可能是因为它们没有字段或条目

如果为TRUE,则只为键、索引和值列中为NULL的零行扩展生成一行


我得到上一个列YearsLived列的空值
select empd.value:kind,
empd.value:fullName,
empd.value:age,
empd.value:gender,   
--empd.value:phoneNumber,
empd.value:phoneNumber.areaCode, 
empd.value:phoneNumber.number ,
empd.value:children -- flattening childrean 
//chldrn.value:name,
//chldrn.value:gender,
//chldrn.value:age,
//city.value:place,
//yr.value:yearsLived
from my_json emp , lateral flatten(input=>emp.Json_data:empDetails) empd , 
lateral flatten(input=>empd.value:children) chldrn,
//lateral flatten(input=>empd.value:citiesLived) city,
//lateral flatten(input=>city.value:yearsLived) yr
OUTER => TRUE | FALSE
select empd.value:kind,
  empd.value:fullName,
  empd.value:age,
  empd.value:gender,   
  empd.value:phoneNumber,
  empd.value:phoneNumber.areaCode, 
  empd.value:phoneNumber.number ,
  empd.value:children, 
  chldrn.value:name,
  chldrn.value:gender,
  chldrn.value:age,
  city.value:place,
  yr.value:yearsLived
from my_json emp,
  lateral flatten(input=>emp.Json_data:empDetails) empd , 
  lateral flatten(input=>empd.value:children, OUTER => TRUE) chldrn,   -- <HERE>
  lateral flatten(input=>empd.value:citiesLived) city,
  lateral flatten(input=>city.value:yearsLived) yr