Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Membahagikan Lajur Pangkalan Data Tunggal kepada Berbilang Lajur Menggunakan SQL?

Bagaimanakah Saya Boleh Membahagikan Lajur Pangkalan Data Tunggal kepada Berbilang Lajur Menggunakan SQL?

Mary-Kate Olsen
Lepaskan: 2025-01-13 09:19:43
asal
212 orang telah melayarinya

How Can I Split a Single Database Column into Multiple Columns Using 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:

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;
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan