我需要定义结构列吗?

uwopmtnx  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(382)

我在雅典娜有一堆表,其中包含具有不同嵌套列的结构。我希望将所有这些表作为单个表(即,联合视图)进行查询,并且我希望能够仅在嵌套列存在时从结构中返回该列,否则返回null。
例子:

Table1: 
email
record: {email, first_name, last_name}

Table2:
email
record: {email, dob}

我想能够联合这些,然后在共同的电子邮件栏查询。然后像这样做 record.first_name 生成一个填充了表1行数据和表2行空值的列。
我尝试在属性周围 Package try()块,结果出现了“column cannot be resolved”错误。
这可能吗?或者我需要在视图/联合查询中定义结构列吗?

vwkv1x7d

vwkv1x7d1#

你可以投 record 作为 JSON ,如下所示:

SELECT
  email,
  CAST(record AS JSON) AS record
FROM table1

UNION ALL

SELECT
  email,
  CAST(record AS JSON) AS record
FROM table2

我相信你可以投 MAP 也一样,但我搞不懂语法。

相关问题