sql - 如何在 SQL Query 中将 JSON 字段转换为表格格式?
问题描述
我有一个包含 3 列(ID、内容、日期)的表,其中内容列具有 json 格式的值,如下所示:
{
"Id": "9999",
"Name": "PETERPAN",
"SubContent": [
{
"subcontent1": "ABC",
"subcontent2": "123"
}
[
}
如何使用 SQL Query 将其转换为表格格式?
解决方案
使用 LATERAL FLATTEN 将键/值对作为单独的行:
with t as (
select parse_json('{
"Id": "9999",
"Name": "PETERPAN",
"SubContent":
{
"subcontent1": "ABC",
"subcontent2": "123"
}
}') col
)
select col:Id as id, col:Name as name, sc.key, sc.value
from t, lateral flatten( input => col:SubContent ) sc;
结果是
ID NAME KEY VALUE
9999 PETERPAN subcontent1 ABC
9999 PETERPAN subcontent2 123
推荐阅读
- updates - 通过 Raven Studio 中的 RQL 向 RavenDB 集合添加额外的列/字段
- python - string.replace / .strip / .find 和内置函数之间有区别吗?
- c# - 禁用 Newtonsoft 更改 JSON 大小写
- c# - Dapper Query 参数中的嵌套对象
- angular-material2 - 减少垫子图标 svg 字体重量
- python - 比较具有不同整数类型的两个 pandas 数据帧
- laravel - 显示 Laravel SoftDeleted 模型
- java - 使用 eclipse 在 java 中无法解决 PMD 错误
- json - Swift 中的回调函数以在 JSON 任务期间返回值
- azure-cosmosdb - 为 odbc cosmos 数据源动态生成视图定义