オブジェクトを逆シリアル化せずに JSON オブジェクトを SQL Server 2016 ストアド プロシージャに渡し、データベースにデータを処理させたいと考えています。
私は通過しています:
DECLARE @json NVarChar(2048) = N'[{
"PMID": "31390573",
"pubdate": "2019",
"data": {
"memberID": "1692",
"pmid": "31390573",
"sortpubdate": "2019/08/06 00:00",
"pmc": "PMC6733019"
}
}, {
"PMID": "31213464",
"pubdate": "2019",
"data": {
"memberID": "1692",
"pmid": "31213464",
"sortpubdate": "2019/08/15 00:00",
"pmc": "PMC6753942"
}
}, {
"PMID": "31130363",
"pubdate": "2019",
"data": {
"memberID": "1692",
"pmid": "31130363",
"sortpubdate": "2019/06/20 00:00",
"pmc": "PMC6588466"
}
}]'
私が使用する場合
SELECT * FROM OPENJSON(@json);
私は得る
0 { "PMID": "31390573", "pubdate": "2019", "data": { "memberID": "1692", "pmid": "31390573", "sortpubdate": "2019/08/06 00:00", "pmc": "PMC6733019" } } 5
1 { "PMID": "31213464", "pubdate": "2019", "data": { "memberID": "1692", "pmid": "31213464", "sortpubdate": "2019/08/15 00:00", "pmc": "PMC6753942" } } 5
2 { "PMID": "31130363", "pubdate": "2019", "data": { "memberID": "1692", "pmid": "31130363", "sortpubdate": "2019/06/20 00:00", "pmc": "PMC6588466" } } 5
最終的に、データ要素内のアイテムの列が 1 つあるテーブルを作成したいので、memberID の列 (pmid --sortpubdate--pmc) を作成します。
memberID pmid sortpubdate
------------------------------------------------
1692 31390573 2019-08-06 00:00:00.0000000
1692 31213464 2019-08-15 00:00:00.0000000
1692 31130363 2019-06-20 00:00:00.0000000
これは可能ですか?XML の場合は、引き裂いて処理することができます。