SQL Server 2016 JSON 変換: オブジェクトの配列から値の配列へ
SQL Server 2016 は強力な JSON 機能を提供し、レポート作成と統合のためのデータ変換を簡素化します。 この例は、オブジェクトの SQL 配列を JSON 構造内のより単純な値の配列に変換するという一般的なニーズに対応します。
シナリオ:
次のようなデータを含むテーブル #temp
について考えます。
#temp テーブル:
|アイテムID | |---|---| | 1234 | | 5678 | | 7890 |
目標は、このデータを JSON に変換し、item_id
値をオブジェクトの配列ではなく単一の配列として表すことです。
ターゲットの JSON 構造:
<code class="language-json">{ "ids": [ "1234", "5678", "7890" ] }</code>
解決策:
この効率的なクエリは、目的の変換を実現します。
<code class="language-sql">SELECT JSON_QUERY('[' + STUFF(( SELECT ',' + '"' + CAST(item_id AS VARCHAR(MAX)) + '"' FROM #temp FOR XML PATH('')),1,1,'') + ']' ) AS ids FOR JSON PATH, WITHOUT_ARRAY_WRAPPER;</code>
説明:
クエリは FOR XML PATH('')
を巧みに使用して、引用符で囲まれた item_id
値のカンマ区切り文字列を作成します。 STUFF
は先頭のカンマを削除します。 結果の文字列は角括弧 ([]
) で囲まれて有効な JSON 配列を形成し、JSON_QUERY
を使用して解析されます。最後に、FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
は出力を目的の JSON オブジェクトとしてフォーマットします。
出力:
クエリを実行すると、ターゲットの JSON 構造が生成されます:
<code class="language-json">{ "ids": [ "1234", "5678", "7890" ] }</code>
このメソッドは、SQL Server 2016 内で JSON 配列変換を管理するための簡潔かつ効果的な方法を提供します。
以上がオブジェクトの SQL 配列を JSON の値の配列に変換する方法 (SQL Server 2016)?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。