Arrays 如何使用openjson读取存储在SQL Server中的Json列下面的内容?
等等所有记录的其余部分?我在fields array下得到了rest字段的“NULL”您可以这样尝试:Arrays 如何使用openjson读取存储在SQL Server中的Json列下面的内容?,arrays,json,sql-server,open-json,sql-server-json,Arrays,Json,Sql Server,Open Json,Sql Server Json,等等所有记录的其余部分?我在fields array下得到了rest字段的“NULL”您可以这样尝试: Declare @ResponseText nvarchar(4000) set @responseText ='{ "submissions": [ { "xml_id":"id_x5d94851726b470.68571510", "fields": [ {"fieldvalue":"customerEma
Declare @ResponseText nvarchar(4000)
set @responseText ='{
"submissions": [
{
"xml_id":"id_x5d94851726b470.68571510",
"fields": [
{"fieldvalue":"customerEmail@xyzdomain.com","fieldid":"57282490"},
{"fieldvalue":"123","fieldid":"57282423"},
{"fieldvalue":"12345-678900","fieldid":"57282500"},
{"fieldvalue":"Test Message here ","fieldid":"57282564"}
]
}
]
}'
SELECT *
FROM OPENJSON (@ResponseText, '$.submissions') WITH (
ID NVARCHAR(100) '$.xml_id',
$.fields.field NVARCHAR(100) ...
)
--询问
Declare @ResponseText nvarchar(4000)
set @responseText ='{
"submissions": [
{
"xml_id":"id_x5d94851726b470.68571510",
"fields": [
{"fieldvalue":"customerEmail@xyzdomain.com","fieldid":"57282490"},
{"fieldvalue":"123","fieldid":"57282423"},
{"fieldvalue":"12345-678900","fieldid":"57282500"},
{"fieldvalue":"Test Message here ","fieldid":"57282564"}
]
}
]
}'
结果
SELECT A.ID
,B.*
FROM OPENJSON (@ResponseText, '$.submissions')
WITH (ID NVARCHAR(100) '$.xml_id'
,fields NVARCHAR(MAX) AS JSON) A
OUTER APPLY OPENJSON(a.fields)
WITH(fieldvalue NVARCHAR(150)
,fieldid BIGINT) B;
简而言之:
您正确地开始使用
WITH
-子句来读取xml\u id
。属性字段
只不过是同一级别上的另一个元素。但我们将其作为JSON返回。这将允许添加另一个应用OPENJSON()
,传入我们从$.fields
获得的片段,并使用另一个WITH
-子句来获取数组中对象的两个属性。您能为您的问题添加所需的结果吗?谢谢您的正确答案,它是由你善意的支持和有益的例子和解释以及。我非常感激。
ID fieldvalue fieldid
id_x5d94851726b470.68571510 customerEmail@xyzdomain.com 57282490
id_x5d94851726b470.68571510 123 57282423
id_x5d94851726b470.68571510 12345-678900 57282500
id_x5d94851726b470.68571510 Test Message here 57282564