我在 sql 表列中有一个嵌套的 JSON,需要从“delinquincies”数组中解析出多个值。在下面的 JSON 中用 ** 突出显示
{
"creditReportDetails":[
{
"accountStatusSummary":{
"accounts":[
{
"amountOwed":0,
"amountPastDue":0,
"type":"Open-ended"
},
{
"amountOwed":1234,
"amountPastDue":0,
"type":"Revolving"
},
{
"amountOwed":123456,
"amountPastDue":0,
"type":"Installment"
},
{
"amountOwed":123456,
"amountPastDue":0,
"type":"Total"
}
],
**"delinquincies":[
{
"badDebt":null,
"paysAccountasAgreed":34,
"paysPaid120Daysor4PaymentsPastDue":null,
"paysPaid3060DaysorMax2PaymentsPastDue":null,
"paysPaid6090DaysorMax3PaymentsPastDue":null,
"paysPaid90120DaysorMax4PaymentsPastDue":null,
"repossession":null,
"statusNotKnown":null,
"type":"current"
},
{
"badDebt":null,
"paysAccountasAgreed":null,
"paysPaid120Daysor4PaymentsPastDue":null,
"paysPaid3060DaysorMax2PaymentsPastDue":null,
"paysPaid6090DaysorMax3PaymentsPastDue":null,
"paysPaid90120DaysorMax4PaymentsPastDue":null,
"repossession":null,
"statusNotKnown":null,
"type":"history"
}
]**
},
"collections":[
],
"datePulled":"01/01/2020",
"employmentHistory":[
{
"employer":"Some Company",
"historyType":"Current"
},
{
"employer":"Some Company",
"historyType":"Former"
}
],
"personalInfoFromVendor":{
"address":{
"city":"Anywhere",
"line1":"123 Anywhere",
"line2":null,
"postalZipCode":"12345",
"territoryCode":"AB"
},
"dateOfBirth":"01/01/1900",
"firstName":"ABCD",
"lastName":"ABCD",
"middleName":"C",
"ssn":"1231456789",
"suffix":null
},
"reportMessaging":{
"duplicate":"No",
"processingStatus":"Complete",
"referenceNumber":"123456789"
},
"reportSummary":{
"bankruptcies":"No",
"collectionItems":"No",
"expNatlRiskScore":"123",
"publicRecords":"No"
}
}
],
"personalCreditReportUrl":"https://abcdcreditreport.lmig.com/creditreport-details/CRS123456789012",
"subjectId":"CRS123456789012",
"totalCount":1,
"CreditReportBaseResponse":{
"lexisNexisReferenceNumber":"123456789012",
"status":{
"statusCode":"COMPLETE",
"statusDescription":[
"BALANCES ON REVOLVING ACCOUNTS",
"BALANCE-TO-LIMIT RATIOS ON ACCOUNTS"
]
},
"subjectId":"CRS123456789012"
}
}
我一直在玩各种 JSON_Value 的迭代,感觉好像我错过了一些简单的东西
Select id,
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[0].badDebt') as 'Current_Baddebt',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[0].paysAccountasAgreed') as 'Current_PaysAccountasAgreed',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[0].paysAccountasAgreed') as 'Current_PaysAccountasAgreed',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[0].paysPaid3060DaysorMax2PaymentsPastDue') as 'Current_Paid3060DaysorMax2PaymentsPastDue',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[0].payspaysPaid6090DaysorMax3PaymentsPastDue') as 'Current_Paid6090DaysorMax3PaymentsPastDue',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[0].paysPaid120Daysor4PaymentsPastDue') as 'Current_paysPaid120Daysor4PaymentsPastDue',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[0].repossession') as 'Current_repossession',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[0].repossession') as 'Current_statusNotKnown',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[1].badDebt') as 'Hisorical_Baddebt',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[1].paysAccountasAgreed') as 'Hisorical_PaysAccountasAgreed',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[1].paysAccountasAgreed') as 'Hisorical_PaysAccountasAgreed',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[1].paysPaid3060DaysorMax2PaymentsPastDue') as 'Hisorical_Paid3060DaysorMax2PaymentsPastDue',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[1].payspaysPaid6090DaysorMax3PaymentsPastDue') as 'Hisorical_Paid6090DaysorMax3PaymentsPastDue',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[1].paysPaid120Daysor4PaymentsPastDue') as 'Hisorical_paysPaid120Daysor4PaymentsPastDue',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[1].repossession') as 'Hisorical_repossession',
JSON_VALUE (json_column, '$.creditReportDetails.accountStatusSummary.delinquincies[1].repossession') as 'Hisorical_statusNotKnown'
from Database.dbo.Credit
期望 Null 值和 Current_paysAccountasAgreed 34