![](/img/trans.png)
[英]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.