Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memisahkan Rentetan dalam T-SQL Menggunakan Pembatas?
Pecah rentetan T-SQL: bijak mengendalikan pembatas yang hilang
Memisahkan rentetan berdasarkan pembatas boleh menjadi rumit dalam T-SQL, terutamanya apabila pembatas tiada dalam beberapa baris. Artikel ini menyediakan kaedah yang lebih baik untuk menyelesaikan masalah ini.
Andaikan data adalah seperti berikut:
<code>John/Smith Jane/Doe Steve Bob/Johnson</code>
Kod asal:
Kod berikut cuba memisahkan data tetapi gagal apabila pembatas tiada:
<code>SELECT SUBSTRING(myColumn, 1, CHARINDEX('/', myColumn)-1) AS FirstName, SUBSTRING(myColumn, CHARINDEX('/', myColumn) + 1, 1000) AS LastName FROM MyTable</code>
Kod yang dipertingkatkan:
Untuk mengendalikan kes pembatas hilang, kita boleh menggunakan ungkapan KES berikut:
<code>SELECT SUBSTRING(myColumn, 1, CASE CHARINDEX('/', myColumn) WHEN 0 THEN LEN(myColumn) ELSE CHARINDEX('/', myColumn) - 1 END) AS FirstName ,SUBSTRING(myColumn, CASE CHARINDEX('/', myColumn) WHEN 0 THEN LEN(myColumn) + 1 ELSE CHARINDEX('/', myColumn) + 1 END, 1000) AS LastName FROM MyTable</code>
Penerangan:
Kod ini akan menghasilkan hasil yang dijangkakan:
<code>FirstName---LastName John--------Smith Jane--------Doe Steve-------NULL Bob---------Johnson</code>
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan dalam T-SQL Menggunakan Pembatas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!