Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Membahagikan Lajur Pangkalan Data Tunggal kepada Berbilang Lajur Menggunakan SQL?
Teknik SQL untuk Memisahkan Lajur Pangkalan Data
Lazimnya, pertanyaan pangkalan data memerlukan memisahkan data dalam satu lajur kepada berbilang lajur yang berbeza. Ini selalunya penting untuk mengekstrak maklumat khusus atau menyediakan data untuk analisis lanjutan.
Senario:
Bayangkan jadual dengan lajur "Nama Penuh" yang mengandungi nama lengkap individu. Objektifnya adalah untuk membahagikan nama penuh ini kepada lajur "Nama Pertama" dan "Nama Akhir" yang berasingan, dengan mengenepikan nama tengah.
Penyelesaian:
Pertanyaan SQL berikut menggunakan penyataan CASE dan fungsi rentetan untuk menyelesaikan tugas ini:
<code class="language-sql">SELECT CASE WHEN FullName LIKE '% %' THEN LEFT(FullName, CHARINDEX(' ', FullName) - 1) ELSE FullName END AS FirstName, CASE WHEN FullName LIKE '% %' THEN RIGHT(FullName, CHARINDEX(' ', REVERSE(FullName)) - 1) END AS LastName FROM YourTable;</code>
Penjelasan:
Pertanyaan ini menggunakan logik berikut:
Penyata CASE pertama menyemak sama ada lajur "Nama Penuh" termasuk ruang, menunjukkan kehadiran sekurang-kurangnya nama pertama dan nama keluarga. Jika ruang wujud, fungsi LEFT
mengekstrak bahagian rentetan sebelum ruang pertama. Jika tidak, keseluruhan rentetan ditetapkan sebagai "FirstName".
Pernyataan KES kedua juga menyemak ruang. Jika ditemui, fungsi RIGHT
mengekstrak bahagian rentetan selepas ruang terakhir (menggunakan REVERSE
untuk mencari ruang terakhir dengan mudah).
Hasilnya ialah set data dengan lajur "FirstName" dan "LastName".
Pertimbangan Penting:
Kaedah ini menggunakan konvensyen penamaan standard—nama pertama diikuti nama keluarga, dipisahkan oleh satu ruang. Nama dengan berbilang ruang (cth., nama tengah atau gelaran) atau format luar biasa mungkin memerlukan pengubahsuaian atau pendekatan alternatif untuk hasil yang tepat. Penyelesaian yang lebih mantap mungkin melibatkan ungkapan biasa atau fungsi tersuai bergantung pada kerumitan variasi nama.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan Lajur Pangkalan Data Tunggal kepada Berbilang Lajur Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!