将 JSON 取消嵌套到 SQL 行

Posted

技术标签:

【中文标题】将 JSON 取消嵌套到 SQL 行【英文标题】:Unnest JSON to SQL rows 【发布时间】:2021-02-01 02:45:08 【问题描述】:

我正在尝试在 SQL (bigquery) 中取消嵌套 JSON 列,以便我可以拥有多行。我一直在尝试搜索如何做到这一点,但我认为我在这里有一个独特的案例:

id json column
abc "callFee": 0, "estimationEx": "estimatedAt": 12312312344, "surgePolicyId": "v1-202101020126", "userVehicleId": "VRIVFLP2WK", "userRequestTags": ["NO_BYPASSING_ROUTE", "NO_UNKIND", "NO_TOO_MUCH_TALKER", "NO_UNCLEAN", "NO_WILD_DRIVING"]

我只想解析“userRequestTags”部分并得到以下输出:

id UserRequest
abc NO_BYPASSING_ROUTE
abc NO_UNKIND
abc NO_TOO_MUCH_TALKER
abc NO_UNCLEAN
abc NO_WILD_DRIVING

我尝试使用函数 JSON_QUERY,但我认为这不会带我去任何地方。请问有什么想法吗? :/

【问题讨论】:

【参考方案1】:

在下面使用

select id, trim(tag, '"') as UserRequest
from `project.dataset.table`, 
unnest(json_extract_array(json_column, '$.userRequestTags')) tag 

如果应用于您的问题中的样本数据 - 输出是

【讨论】:

以上是关于将 JSON 取消嵌套到 SQL 行的主要内容,如果未能解决你的问题,请参考以下文章