从雪花中的子查询创建 JSON

Gen*_*emo 1 json snowflake-cloud-data-platform dbt

我想从值列表创建一个 JSON 字符串,但我以前从未使用过 JSON。请参阅下图了解我的 2 个表格,以及我想要在右侧创建的内容。

在此输入图像描述

我尝试了这个,但它不起作用(请原谅我的天真......但我认为这将是它的逻辑实现)

select a.property_key
      ,to_JSON( select application_ID from tableB where a.property_key = b.property_key) as application_list
  from tableA a
Run Code Online (Sandbox Code Playgroud)

我将不胜感激的帮助。我尝试用谷歌搜索,但发现雪花文档非常混乱。

Gre*_*lik 5

以下是如何将行转换为单独的 JSON 文档或一个 JSON 数组的示例:

-- Get some rows from a sample table
select * from SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.NATION;

-- Get each row as its own JSON using object_construct
select object_construct
(
    'NATION', N_NATIONKEY,
    'NAME', N_NAME,
    'REGION_KEY', N_REGIONKEY,
    'COMMENT', N_COMMENT
) as MY_JSON
from "SNOWFLAKE_SAMPLE_DATA"."TPCH_SF1"."NATION";
                 
-- Get all rows as a JSON array by adding array_agg
select array_agg(object_construct
(
    'NATION', N_NATIONKEY,
    'NAME', N_NAME,
    'REGION_KEY', N_REGIONKEY,
    'COMMENT', N_COMMENT
)) as MY_JSON
from "SNOWFLAKE_SAMPLE_DATA"."TPCH_SF1"."NATION";   
Run Code Online (Sandbox Code Playgroud)

对于任一选项,请记住 JSON 被视为 Snowflake 中的变体,并且具有 16mb 的大小限制。