簡體   English   中英

解析存儲為 Varchar 的鍵值對列

[英]Parse Key-Value pair column stored as Varchar

我正在嘗試查詢將數據存儲在鍵值對中的列。 我以為是 JSON,但在檢查了屬性后,它似乎是一個varchar列。 我不太確定如何查詢這樣的列。 它看起來像:

{ "Employee":"John", "EmployeeID":"1", "Role":"Marketing" }

那里也有一些嵌套的對。 非常感謝有關如何從這種類型的 JSON 查找列(它的類型為varchar )中提取值的任何幫助。

如果它確實是有效的 JSON,只需將其轉換為數據類型json (或某些操作的jsonb )並使用 Postgres 的JSON 功能庫將其視為此類。 喜歡:

SELECT col::json->>'Role' AS the_role
FROM   tbl;

db<> 在這里擺弄

當然,在一個理智的世界中,一開始會使用表中的數據類型jsonjsonb

看起來這是一個 Redshift 問題,因為它提供有限的支持來處理 JSON 文件。 我能夠使用以下函數查詢鍵值對:JSON_EXTRACT_PATH_TEXT()

Select *, 
json_extract_path_text(col, 'Employee', true) as Employee,
json_extract_path_text(col, 'EmployeeID', true) as EmployeeID,
json_extract_path_text(col, 'Role', true) as Role
from table;

這是一些文檔:

https://sonra.io/redshift/working-with-json-in-redshift-options-limitations-and-alternatives/#:~:text=Redshift%20does%20not%20have%20a,SQL%20functions%20offered% 20in%20紅移 https://docs.aws.amazon.com/redshift/latest/dg/json-functions.html 在 Redshift 中查詢 JSON 字段

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM