Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menukar Nilai Sel Dipisahkan Koma ke Baris Individu Menggunakan Pelayan SQL?

Bagaimana untuk Menukar Nilai Sel Dipisahkan Koma ke Baris Individu Menggunakan Pelayan SQL?

Linda Hamilton
Lepaskan: 2025-01-03 12:46:44
asal
799 orang telah melayarinya

How to Convert Comma-Separated Cell Values into Individual Rows Using SQL Server?

Menukar Nilai Sel Dipisahkan Koma kepada Baris Individu Menggunakan Pelayan SQL

Apabila berurusan dengan data dalam jadual, kadangkala anda mungkin menghadapi nilai yang disimpan sebagai rentetan yang dipisahkan koma dalam satu sel. Untuk memudahkan analisis atau pemprosesan selanjutnya, nilai ini mungkin perlu dibahagikan kepada baris yang berasingan. Artikel ini meneroka cara untuk mencapai objektif ini menggunakan pertanyaan SQL Server SELECT.

Masalah:

Pertimbangkan jadual bernama "Sampel" dengan lajur yang dipanggil "String" yang mengandungi nilai dipisahkan koma. Anda perlu menukar data kepada format yang setiap nilai menduduki barisnya sendiri:

Jadual asal:

Id String
1 abc,def,ghi
2 jkl,mno,pqr

Output yang diingini:

Id processedrows
1 abc
1 def
1 ghi
2 jkl
2 mno
2 pqr

Penyelesaian:

Untuk mencapai output yang diingini, anda boleh menggunakan SELECT berikut pertanyaan:

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

Penjelasan:

  1. Pertanyaan dalam, yang disertakan dalam kurungan, membina rentetan XML daripada lajur "String" dengan membalut setiap nilai dengan teg XML (). Langkah ini diperlukan untuk mendayakan operasi pemisahan seterusnya.
  2. Pengendali CROSS APPLY menggunakan fungsi String.nodes() pada setiap baris dalam pertanyaan dalam, dengan berkesan memisahkan lajur "String" kepada nod individu dalam XML pokok.
  3. Akhir sekali, penyataan SELECT mendapatkan semula lajur "id" bersama-sama dengan nilai setiap nod pecahan, yang secara automatik ditukar kepada jenis data VARCHAR.

Rujukan:

Untuk mendapatkan maklumat lanjut tentang teknik ini dan penyelesaian alternatif, rujuk perkara berikut sumber:

http://www.sqljason.com/2010/05/converting-single-comma-separated-row.html

Atas ialah kandungan terperinci Bagaimana untuk Menukar Nilai Sel Dipisahkan Koma ke Baris Individu Menggunakan 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan