Alternatif kepada STRING_SPLIT dalam SQL Server 2012
Fungsi STRING_SPLIT tidak tersedia dalam SQL Server 2012 kerana sekatan tahap keserasian. Walaupun menukar tahap keserasian tidak boleh dilakukan, terdapat alternatif untuk memisahkan nilai yang dipisahkan koma.
Menggunakan kaedah XML dan CROSS APPLY
Kaedah XML dan CROSS APPLY boleh digunakan untuk mencapai hasil yang diinginkan. Begini caranya:
<code class="language-sql">SELECT Split.a.value('.', 'NVARCHAR(MAX)') AS DATA FROM ( SELECT CAST('<X>'+REPLACE(@ID, ',', '</X><X>')+'</X>' AS XML) AS String ) AS A CROSS APPLY String.nodes('/X') AS Split(a);</code>
Contoh
Pertimbangkan contoh berikut, di mana parameter @ID mengandungi nilai dipisahkan koma:
<code class="language-sql">DECLARE @ID NVARCHAR(300) = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20';</code>
Keluaran pertanyaan di atas ialah:
<code>DATA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20</code>
Ringkasan
Walaupun STRING_SPLIT tidak tersedia dalam SQL Server 2012, kaedah XML yang digabungkan dengan CROSS APPLY menyediakan alternatif yang berdaya maju untuk memisahkan nilai yang dipisahkan koma. Pendekatan ini amat berguna apabila sekatan tahap keserasian menghalang pengubahsuaian pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Nilai Dipisahkan Koma dalam SQL Server 2012 tanpa STRING_SPLIT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!