Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menukar Tatasusunan Objek SQL Server kepada Tatasusunan Nilai JSON dalam SQL 2016?

Bagaimana untuk Menukar Tatasusunan Objek SQL Server kepada Tatasusunan Nilai JSON dalam SQL 2016?

Linda Hamilton
Linda Hamiltonasal
2025-01-09 18:52:41374semak imbas

How to Convert a SQL Server Array of Objects to an Array of JSON Values in SQL 2016?

Penukaran SQL ke JSON: Tukar tatasusunan objek kepada tatasusunan nilai dalam SQL 2016

SQL 2016 menyediakan fungsi menukar data SQL Server kepada JSON, mengembangkan banyak kemungkinan. Walau bagaimanapun, apabila berurusan dengan tatasusunan objek, kadangkala struktur JSON yang diperlukan mungkin berbeza daripada hasil penukaran lalai.

Khususnya, apabila menukar tatasusunan objek kepada JSON, gelagat lalai ialah membenamkan objek sebagai tatasusunannya sendiri dalam tatasusunan induk. Contohnya:

<code class="language-sql">SELECT (SELECT item_id FROM #temp FOR JSON PATH,root('ids'))</code>

Keputusan:

<code class="language-json">{
    "ids": [{
        "item_id": "1234"
    },
    {
        "item_id": "5678"
    },
    {
        "item_id": "7890"
    }]
}</code>

Dalam sesetengah kes mungkin lebih baik untuk memaparkan tatasusunan objek sebagai tatasusunan nilai, tanpa struktur bersarang.

Untuk mencapai matlamat ini, transformasi XML perantaraan boleh digunakan:

<code class="language-sql">SELECT  
JSON_QUERY('[' + STUFF(( SELECT ',' + '"' + item_id + '"' 
FROM #temp FOR XML PATH('')),1,1,'') + ']' ) ids  
FOR JSON PATH , WITHOUT_ARRAY_WRAPPER</code>

Langkah ini menukar data kepada struktur XML yang diratakan, yang kemudiannya boleh ditukar kepada JSON menggunakan parameter JSON_QUERY() dan WITHOUT_ARRAY_WRAPPER. Hasilnya ialah tatasusunan yang dikehendaki yang mengandungi nilai:

<code class="language-json">"ids": [
        "1234",
        "5678",
        "7890"
    ]</code>

Atas ialah kandungan terperinci Bagaimana untuk Menukar Tatasusunan Objek SQL Server kepada Tatasusunan Nilai JSON dalam SQL 2016?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn