Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memisahkan Rentetan Dipisahkan Koma dalam SQL Server 2012 Tanpa Menggunakan STRING_SPLIT?
SQL Server 2012 Pemisahan Rentetan Dipisahkan Koma: Penyelesaian Berasaskan XML
Tahap keserasian SQL Server 2012 boleh menyekat akses kepada fungsi STRING_SPLIT
. Artikel ini membentangkan penyelesaian yang berkesan menggunakan teknik XML untuk memisahkan nilai yang dipisahkan koma.
Memanfaatkan XML dan CROSS GUNA
Kaedah ini menukar rentetan yang dipisahkan koma kepada struktur XML. CROSS APPLY
kemudian mengekstrak setiap nilai sebagai nod daripada XML ini. Inilah kod SQL:
<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 Ilustrasi
Mari kita gunakan parameter sampel ini:
<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'; DECLARE @Marks NVARCHAR(300)= '0,1,2,5,8,9,4,6,7,3,5,2,7,1,9,4,0,2,5,0';</code>
Pertanyaan berikut menunjukkan pembahagian rentetan ini dan memasukkan keputusan ke dalam jadual:
<code class="language-sql">INSERT INTO @StudentsMark SELECT C.id, C1.marks FROM CTE C LEFT JOIN CTE1 C1 ON C1.RN = C.RN;</code>
Hasil
Hasilnya ialah jadual dengan lajur 'id' dan 'marks', setiap satu diisi dengan nilai pisah daripada @ID
dan @Marks
.
Pendekatan berasaskan XML ini menawarkan kaedah yang boleh dipercayai untuk mengendalikan data dipisahkan koma dalam SQL Server 2012, memintas had tahap keserasian.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memisahkan Rentetan Dipisahkan Koma dalam SQL Server 2012 Tanpa Menggunakan STRING_SPLIT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!