Вот вход JSON
{
"agentID":"WJ",
"recordType":"AHL",
"recordReference":{
"stationCode":"ATL",
"airlineCode":"XS",
"recordId":"10001"
},
"entries":[
{
"bag":{
"bagType":"22",
"bagSize":"S",
"category":"1"
},
"seqNo":"1",
"noOfBagsGiven":"2"
},
{
"bag":{
"bagType":"23",
"bagSize":"L",
"category":"1"
},
"seqNo":"2",
"noOfBagsGiven":"5",
"dateBagsGiven":"2019-09-18"
}
]
}
А вот выход, который я надеюсь получить (табличный или ограниченный)
Iне знаю как перебрать дочерние записи и вот что у меня пока что
DECLARE @JSON VARCHAR(MAX) =
'{
"agentID":"WJ",
"recordType":"AHL",
"recordReference":{
"stationCode":"ATL",
"airlineCode":"XS",
"recordId":"10001"
},
"entries":[
{
"bag":{
"bagType":"22",
"bagSize":"S",
"category":"1"
},
"seqNo":"1",
"noOfBagsGiven":"2"
},
{
"bag":{
"bagType":"23",
"bagSize":"L",
"category":"1"
},
"seqNo":"2",
"noOfBagsGiven":"5",
"dateBagsGiven":"2019-09-18"
}
]
}';
SELECT *
FROM OPENJSON(@json) WITH(agent_id VARCHAR(2) '$.agentID'
,record_type VARCHAR(4) '$.recordType'
,station_code VARCHAR(4) '$.recordReference.stationCode'
,airline_code VARCHAR(4) '$.recordReference.airlineCode'
,record_id INT '$.recordReference.recordId'
,bag_type INT '$.entries.bag.bagType'
,bag_size VARCHAR(2) '$.entries.bag.bagSize'
,bag_category INT '$.entries.bag.bagCategory'
,date_bags_given DATE '$.entries.bag.dateBagsGiven'
);