JSONデータを含むnvarchar
列のテーブルに複数の行があるとします。各行には、{ "key": "value" }
のような単純なJSONオブジェクトがあります。任意の数のグループ、およびごとの行の数に制限はありませができSQL Serverの複数の行に格納されたJSONからJSONオブジェクトの配列を作成する最適な方法は何ですか?
{
"data": [
{ "key": "value" },
{ "key": "value" },
{ "key": "value" }
]
}
:のような、行のグループのために、配列として単一のJSONオブジェクトにこれらのオブジェクトのすべてを構成するための最良の方法は何ですかグループ。各オブジェクトは異なる可能性があります。
現在のところ、FOR XML PATH
を使用して1つの文字列に連結する方法がありますが、これは奇妙なテキスト(たとえば)が入ってしまい、弾力性のあるアプローチにはなりません。 JSON_MODIFY
を使用する可能性はありますが、グループごとに未知の行をどのように使用するのかはわかりません。
XMLのPATH' FOR 'STRING_AGG'が利用可能になったとき、なぜ'? 'STRING_AGG([column]、 '、')'はそれ以上エスケープしないで正しく連結しなければなりません。彼らが言っているように、 'CONCAT( '{" data ":['、...、 ']}')'で囲み、あなたの叔父でなければなりません。 –
私はこの質問に「sql-server-2017」と誤ってタグ付けしました。私たちの環境はまだ2016年なので、残念なことに 'STRING_AGG'を活用することはできません。 –