[英]How to extract nested json?
I have a table name 'my doc'.我有一个表名“我的文档”。 And there is a column which is a nested json called 'element'.
还有一列是嵌套的 json,称为“元素”。 The structure is as below.
结构如下。
I wanna extract the element_id as a column.我想将 element_id 提取为一列。 How to make it with sql?
如何用 sql 制作它? Thanks
谢谢
{
“element”: {
“1”: {
“element_id”:”3jakd4ks”,
“type”: “square”,
“name”: “eggplant”
},
“2”: {
“element_id”:” ieh3iusk”;
“type”: “circle”,
“name”: “orange”
},
“3”: {
“element_id”:”766wjdhh”;
“type”: “circle”,
“name”: “apple”
}
}
}
If you are working with SQL Server, and your data is stored in a table, the syntax would be something like this.如果您正在使用 SQL 服务器,并且您的数据存储在表中,则语法将是这样的。 Your schema may be different, but refer to Microsoft documentation for more details.
您的架构可能不同,但请参阅 Microsoft 文档了解更多详细信息。 https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15
https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15
SELECT v.*
FROM Table1 AS t
CROSS APPLY
OPENJSON(t.JSONColumn)
WITH (
ResultID NVARCHAR(MAX) '$.element' AS JSON
) AS Returned
CROSS APPLY (
SELECT element_id
,type
,name
FROM
OPENJSON(Returned.ResultID)
WITH (
element_id VARCHAR(MAX) '$.element_id'
,type VARCHAR(MAX) '$.type'
,name VARCHAR(MAX) '$.name'
)
) AS v;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.