0

我目前正在为我工​​作的企业在雪花中建立一个数据仓库,我遇到了一些问题。我曾经在 TSQL 中应用函数 Json_value 来从原始 MSSQL DB 中的 json 格式字段中提取某些键/值对。

所有其他字段均采用常规 SQL 格式,但我真正需要的字段是 JSON 格式,我似乎无法准确确定我需要的键/值对。

我是 SnowSQL 的新手,我似乎找不到在常规查询中提取它的方法。有谁知道解决我的问题的方法?

* ID /// TYPE /// 名称 (JSON_FORMAT)/// 金额 *

  1          5         {En: "lunch, fr: "diner"}        10.00

我想提取这一行(例如),并且只能从我的 JSON 格式字段中检索 EN: "lunch" 部分。

谢谢 !

4

1 回答 1

0

几乎每次在 Snowflake 中使用 JSON 时,都建议使用 VARIANT 数据类型。您可以使用 parse_json 函数将字符串转换为带有 JSON 的变体。

select 
parse_json('{En: "lunch", fr: "diner"}') as VARIANT_COLUMN,
VARIANT_COLUMN:En::string as ENGLISH_WORD;

在此示例中,第一列将您的 JSON 转换为名为 VARIANT_COLUMN 的变体。第二列使用变体,提取“En”属性并将其转换为字符串数据类型。

您可以将列定义为变体并本地存储 JSON。这将提高性能并允许在 SQL 中使用点表示法进行解析。

于 2020-04-09T14:49:22.740 回答