string_agg
dalam Pelayan SQL Pra-2017SQL Server string_agg
, diperkenalkan pada 2017, memudahkan penyatuan rentetan. Walau bagaimanapun, untuk versi lama, kami memerlukan pendekatan alternatif. Artikel ini menunjukkan kaedah untuk mencapai hasil yang serupa.
Matlamatnya adalah untuk meniru kefungsian pertanyaan ini:
<code class="language-sql">SELECT STRING_AGG(t.id, ',') AS id FROM Table t;</code>
Ini menggabungkan nilai lajur 'id' daripada jadual 'Jadual', menggunakan koma sebagai pemisah.
SQL Server Pra-2017 kekurangan string_agg
. Penyelesaiannya menggunakan kaedah FOR XML PATH
:
<code class="language-sql">SELECT STUFF((SELECT ',' + CAST(t.id AS VARCHAR(MAX)) FROM Table t FOR XML PATH('')), 1, 1, '');</code>
Ini dengan bijak membina rentetan yang dipisahkan koma. FOR XML PATH('')
menjana perwakilan XML, mencipta senarai dipisahkan koma dengan berkesan. STUFF()
kemudian mengalih keluar koma di hadapan. Ini secara berkesan meniru tingkah laku string_agg
.
Penyelesaian ini menyediakan penyelesaian praktikal untuk penggabungan rentetan dalam versi SQL Server yang lebih lama, mencerminkan kefungsian fungsi string_agg
yang lebih baharu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meniru Fungsi `string_agg` SQL Server dalam Versi Sebelum 2017?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!