Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Membahagikan Nilai Dipisahkan Koma kepada Baris dalam Pelayan SQL?

Bagaimanakah Saya Boleh Membahagikan Nilai Dipisahkan Koma kepada Baris dalam Pelayan SQL?

DDD
Lepaskan: 2025-01-05 08:24:43
asal
161 orang telah melayarinya

How Can I Split Comma-Separated Values into Rows in SQL Server?

Memisahkan Nilai Dipisahkan Koma kepada Baris

Dalam SQL Server, menukar rentetan dipisahkan koma yang disimpan dalam lajur jadual kepada berbilang baris boleh dicapai menggunakan gabungan XML dan teknik manipulasi rentetan. Objektifnya adalah untuk menukar jadual yang mengandungi satu baris dengan rentetan dipisahkan koma kepada jadual dengan berbilang baris, setiap satu mengandungi nilai unik daripada rentetan asal.

Untuk mencapainya, ikuti langkah berikut:

  1. Tukar rentetan kepada serpihan XML: Balut rentetan yang dipisahkan koma dengan teg XML ke mengubahnya menjadi serpihan XML. Operasi ini menambah tag pembuka dan penutup pada setiap nilai, mewujudkan struktur XML hierarki.
  2. Gunakan CROSS APPLY untuk memisahkan serpihan XML: Gunakan operator CROSS APPLY untuk memisahkan serpihan XML kepada individu nod. Setiap nod mewakili satu nilai dalam rentetan asal.
  3. Ekstrak nilai daripada nod: Gunakan kaedah VALUE() pada setiap nod untuk mengekstrak nilai sebenar sebagai rentetan. Ini menukarkan semula nod XML kepada jenis data yang boleh digunakan.
  4. Gabungkan id dan nilai yang diekstrak: Sertai nilai yang diekstrak dengan lajur id jadual asal untuk mencipta jadual baharu. Ini memastikan bahawa setiap nilai dikaitkan dengan baris yang sepadan dalam jadual asal.

Berikut ialah contoh pertanyaan yang menunjukkan proses ini:

SELECT A.[id],
       Split.a.value('.', 'VARCHAR(100)') AS String
FROM (SELECT [id],
             CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML) AS String
         FROM TableA) AS A CROSS APPLY String.nodes ('/M') AS Split(a);
Salin selepas log masuk

Pertanyaan ini akan menghasilkan output yang diingini , di mana setiap baris dalam jadual asal dikembangkan menjadi berbilang baris, setiap satu mengandungi nilai tunggal daripada rentetan yang dipisahkan koma.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan Nilai Dipisahkan Koma kepada Baris dalam Pelayan SQL?. 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