用 T-SQL 解析 JSON
Parsing JSON with T-SQL
我只想 select JSON 字符串中的每个值名称和值,并在 SQL 中转到单独的列中,以便我可以轻松地将它们传递到 powershell要发送到外部的字符串 API
DECLARE @json NVARCHAR(MAX)
SET @json='{ "InsertRecordData": { "data": { "AdditionalData": { "DataObjects": { "ObjData": { "Name": "coll_exclude", "Fields": { "FieldData1": { "Name": "agreement", "Value": "1234" }, "FieldData2": { "Name": "system", "Value": "live" }, "FieldData3": { "Name": "date_added", "Value": "2019-08-01" }, "FieldData4": { "Name": "time_added", "Value": "11:20" } } } } } } } }';
SELECT *
FROM OPENJSON(@json,'$.InsertRecordData.data.AdditionalData.DataObjects.ObjData.Fields')
我想看
Agreement System Date_added time_added
1234 live 2019-08-01 11:20
使用 mssql pivot()
DECLARE @json NVARCHAR(MAX)
SET @json='{ "InsertRecordData": { "data": { "AdditionalData": { "DataObjects": { "ObjData": { "Name": "coll_exclude", "Fields": { "FieldData1": { "Name": "agreement", "Value": "1234" }, "FieldData2": { "Name": "system", "Value": "live" }, "FieldData3": { "Name": "date_added", "Value": "2019-08-01" }, "FieldData4": { "Name": "time_added", "Value": "11:20" } } } } } } } }';
select [agreement], [system], [date_added], [time_added] from
(
SELECT json_value(js.value, '$.Name') as Titles, json_value(js.value, '$.Value') as val
FROM OPENJSON(@json,'$.InsertRecordData.data.AdditionalData.DataObjects.ObjData.Fields') as js) as SourceTb
PIVOT
(
max(val)
FOR Titles in ([agreement], [system], [date_added], [time_added])
) as PivotTable
我只想 select JSON 字符串中的每个值名称和值,并在 SQL 中转到单独的列中,以便我可以轻松地将它们传递到 powershell要发送到外部的字符串 API
DECLARE @json NVARCHAR(MAX)
SET @json='{ "InsertRecordData": { "data": { "AdditionalData": { "DataObjects": { "ObjData": { "Name": "coll_exclude", "Fields": { "FieldData1": { "Name": "agreement", "Value": "1234" }, "FieldData2": { "Name": "system", "Value": "live" }, "FieldData3": { "Name": "date_added", "Value": "2019-08-01" }, "FieldData4": { "Name": "time_added", "Value": "11:20" } } } } } } } }';
SELECT *
FROM OPENJSON(@json,'$.InsertRecordData.data.AdditionalData.DataObjects.ObjData.Fields')
我想看
Agreement System Date_added time_added
1234 live 2019-08-01 11:20
使用 mssql pivot()
DECLARE @json NVARCHAR(MAX)
SET @json='{ "InsertRecordData": { "data": { "AdditionalData": { "DataObjects": { "ObjData": { "Name": "coll_exclude", "Fields": { "FieldData1": { "Name": "agreement", "Value": "1234" }, "FieldData2": { "Name": "system", "Value": "live" }, "FieldData3": { "Name": "date_added", "Value": "2019-08-01" }, "FieldData4": { "Name": "time_added", "Value": "11:20" } } } } } } } }';
select [agreement], [system], [date_added], [time_added] from
(
SELECT json_value(js.value, '$.Name') as Titles, json_value(js.value, '$.Value') as val
FROM OPENJSON(@json,'$.InsertRecordData.data.AdditionalData.DataObjects.ObjData.Fields') as js) as SourceTb
PIVOT
(
max(val)
FOR Titles in ([agreement], [system], [date_added], [time_added])
) as PivotTable