Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memisahkan Rentetan dalam T-SQL dengan Pembatas yang Hilang?
Pecah rentetan berasaskan pembatas dalam T-SQL, mengendalikan pembatas yang hilang
Dalam T-SQL, anda mungkin perlu membelah rentetan berdasarkan pembatas tertentu, walaupun pembatas itu tidak sentiasa ada. Tugasan ini biasanya dilakukan menggunakan fungsi SUBSTRING. Walau bagaimanapun, kod yang disediakan dalam soalan gagal apabila baris tiada pembatas yang dijangkakan.
Untuk menyelesaikan isu ini, pertimbangkan kod diubah suai berikut:
<code class="language-sql">SELECT CASE WHEN CHARINDEX('/', myColumn) = 0 THEN myColumn ELSE SUBSTRING(myColumn, 1, CHARINDEX('/', myColumn) - 1) END AS FirstName, CASE WHEN CHARINDEX('/', myColumn) = 0 THEN NULL ELSE SUBSTRING(myColumn, CHARINDEX('/', myColumn) + 1, LEN(myColumn)) END AS LastName FROM MyTable;</code>
Dalam kod ini, pernyataan CASE digunakan untuk menentukan tempat subrentetan untuk lajur FirstName dan LastName bermula dan berakhir. Kedudukan permulaan lajur Nama Pertama ditetapkan pada permulaan rentetan (jika tiada pembatas ditemui) atau aksara sebelum pembatas. Begitu juga, kedudukan akhir lajur Nama Pertama ditetapkan pada penghujung rentetan atau aksara sebelum pembatas.
Kaedah ini memastikan bahawa kod boleh mengendalikan garisan dengan pembatas yang dijangkakan serta baris tanpa pembatas yang dijangkakan tanpa menghasilkan ralat. Output yang terhasil akan memberikan nilai FirstName dan LastName yang diperlukan, walaupun untuk baris tanpa pembatas, di mana nilai yang hilang akan muncul sebagai NULL. Ini lebih ringkas dan cekap daripada kod asal, dan mengendalikan pembatas yang hilang dengan lebih jelas.
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan dalam T-SQL dengan Pembatas yang Hilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!