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
Lepaskan: 2025-01-13 11:54:43
asal
344 orang telah melayarinya

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

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!

sumber:php.cn
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