Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memisahkan Nilai Dipisahkan Koma dalam SQL Server 2012 tanpa STRING_SPLIT?

Bagaimana untuk Memisahkan Nilai Dipisahkan Koma dalam SQL Server 2012 tanpa STRING_SPLIT?

DDD
Lepaskan: 2025-01-11 06:30:42
asal
216 orang telah melayarinya

How to Split Comma-Separated Values in SQL Server 2012 without STRING_SPLIT?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan