将 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 行的主要内容,如果未能解决你的问题,请参考以下文章