Memisahkan Rentetan Menggunakan Aksara Pembatas dalam T-SQL
Soalan ini menangani keperluan untuk mengekstrak maklumat khusus daripada rentetan panjang yang disimpan dalam jadual lajur. Cabarannya terletak pada membelah rentetan berdasarkan pembatas tertentu dan mengekstrak sekeping data tertentu.
Untuk mencapai ini menggunakan T-SQL, pendekatan berikut boleh digunakan:
Pertama, CHARINDEX atau fungsi PATINDEX digunakan untuk mencari kedudukan aksara pembatas ('|') dalam rentetan.
Seterusnya, fungsi STUFF digunakan untuk mencipta rentetan baharu yang merangkumi teks selepas aksara pembatas.
Akhir sekali, fungsi SUBSTRING digunakan untuk mengekstrak teks yang dikehendaki, seperti "Nama Klien" dalam contoh ini, berdasarkan kedudukan aksara pembatas dan panjang yang ditentukan bagi aksara.
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
Pertanyaan ini memanfaatkan fungsi CHARINDEX atau PATINDEX untuk mencari kedudukan "|" aksara dalam lajur "col3" dan kemudian mencipta rentetan baharu yang menyertakan teks selepas pembatas menggunakan fungsi STUFF. Akhir sekali, fungsi SUBSTRING digunakan untuk mengekstrak nilai "Nama Pelanggan" berdasarkan kedudukan dan panjang aksara.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekstrak Data Khusus daripada Rentetan Terhad dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!