Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memisahkan Lajur 'Nama' Tunggal kepada Lajur 'Nama Pertama' dan 'Nama Akhir' dalam SQL?

Bagaimana untuk Memisahkan Lajur 'Nama' Tunggal kepada Lajur 'Nama Pertama' dan 'Nama Akhir' dalam SQL?

Susan Sarandon
Susan Sarandonasal
2025-01-13 11:54:43298semak imbas

How to Split a Single

Pisah satu nilai lajur kepada berbilang lajur

Tugasnya ialah untuk membahagikan nilai dalam satu lajur "nama" kepada berbilang lajur, termasuk nama pertama dan nama keluarga. Anda ingin meninggalkan nama tengah dan memaparkan data yang terhasil dalam lajur "nama_pertama" dan "nama_akhir".

Penyelesaian tersuai

Pendekatan yang dicadangkan mungkin tidak sesuai untuk mengendalikan pelbagai format nama. Walau bagaimanapun, pertanyaan SQL tersuai boleh mencapai ini:

<code class="language-sql">SELECT 
    CASE
        WHEN name LIKE '% %' THEN LEFT(name, Charindex(' ', name) - 1)
        ELSE name
    END AS first_name,
    CASE
        WHEN name LIKE '% %' THEN RIGHT(name, LEN(name) - Charindex(' ', REVERSE(name)))
        ELSE NULL
    END AS last_name
FROM YourTable;</code>

Pertanyaan ini menggunakan fungsi Charindex untuk mencari kedudukan aksara ruang pertama dalam lajur Nama. Jika ruang ditemui, nama dibahagikan kepada bahagian nama pertama dan nama akhir. Jika tiada ruang ditemui, seluruh nama diberikan kepada lajur nama pertama dan nilai NULL diberikan kepada lajur nama akhir. Parameter kedua fungsi RIGHT telah diperbetulkan untuk menggunakan LEN(name) untuk mengira panjang rentetan, memastikan nama akhir diekstrak dengan betul.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Lajur 'Nama' Tunggal kepada Lajur 'Nama Pertama' dan 'Nama Akhir' dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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