[英]Snowflake: In Snowflake SQL how would I select a single field from the users view and put into JSON format?
[英]how do i select certain key/value pair from json field inside a SQL table in SNOWFLAKE
我目前正在为我工作的企业在雪花中构建一个数据仓库,我遇到了一些问题。 我曾经在 TSQL 中应用函数 Json_value 从我原来的 MSSQL 数据库中的 json 格式字段中提取某些键/值对。
所有其他字段都采用常规 SQL 格式,但有一个字段是我真正需要的,它采用 JSON 格式,我似乎无法确定我需要的键/值对。
我是 SnowSQL 的新手,我似乎找不到在常规查询中提取它的方法。 有谁知道解决我的问题的方法?
1 5 {En: "lunch, fr: "diner"} 10.00
我想提取这一行(例如)并且只能从我的 JSON 格式字段中检索 EN: "lunch" 部分。
谢谢 !
几乎任何时候在 Snowflake 中使用 JSON 时,都建议使用 VARIANT 数据类型。 您可以使用 parse_json function 将字符串转换为带有 JSON 的变体。
select
parse_json('{En: "lunch", fr: "diner"}') as VARIANT_COLUMN,
VARIANT_COLUMN:En::string as ENGLISH_WORD;
在此示例中,第一列将您的 JSON 转换为名为 VARIANT_COLUMN 的变体。 第二列使用变体,提取“En”属性并将其转换为字符串数据类型。
您可以将列定义为变量并本地存储 JSON。 这将提高性能并允许在 SQL 中使用点符号进行解析。
对于也偶然发现这个问题的其他人:
您还可以使用 JSON_EXTRACT_PATH_TEXT。 这是一个示例,如果您想创建一个名为 meal 的新列。
select json_extract_path_text(Name,'En') as meal from ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.