Memisahkan Rentetan Menggunakan Pembatas dalam T-SQL
Dalam T-SQL, mengekstrak maklumat khusus daripada rentetan panjang boleh dicapai dengan membelah rentetan menggunakan aksara pembatas. Teknik ini terbukti amat berguna apabila berurusan dengan data yang kompleks dan berstruktur.
Senario Contoh
Pertimbangkan jadual dengan lajur yang mengandungi rentetan dengan berbilang pasangan nilai kunci yang dipisahkan oleh paip (|) dan sama (=) aksara. Matlamatnya adalah untuk mendapatkan hanya nilai khusus yang dikaitkan dengan "Nama Pelanggan."
Penyelesaian Menggunakan Fungsi SUBSTRING dan STUFF
Untuk mengekstrak nilai yang diingini, kita boleh menggunakan gabungan fungsi SUBSTRING dan STUFF:
Select col1, col2, LTRIM(RTRIM(SUBSTRING( STUFF(col3, CHARINDEX('|', col3, PATINDEX('%|Client Name =%', col3) + 14), 1000, ''), PATINDEX('%|Client Name =%', col3) + 14, 1000))) col3 from Table01
Pecahan Penyelesaian
Pertanyaan menggunakan langkah berikut:
Pertimbangan Prestasi
Walaupun kedua-dua CharIndex dan PatIndex boleh digunakan untuk pengecaman pembatas, ujian prestasi menunjukkan bahawa mereka menghasilkan keputusan yang sama. Oleh itu, pilihan antara mereka selalunya diutamakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Nilai Khusus daripada Rentetan Terhad dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!