雅典娜联盟 - 我需要定义结构列吗?



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

例:

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

我希望能够合并这些,然后在通用电子邮件列上查询。然后执行类似record.first_name的操作,以生成一个填充有 Table1 行中的数据和表 2 行的 null 值的列。

我尝试在属性周围包装一个 try(( 块,这导致了"无法解析列"错误。

这可能吗?还是需要在视图/联合查询中定义结构列?

您可以将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,但我无法弄清楚语法。

最新更新