Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memisahkan Satu Lajur Nama kepada Lajur Nama Pertama dan Akhir dalam SQL?
Soalan:
Anda ingin menukar satu lajur yang mengandungi senarai nama kepada berbilang lajur nama pertama dan nama keluarga.
Contoh:
姓名 ------------ abcd efgh ijk lmn opq asd j. asdjja asb (asdfas) asd asd
Keluaran yang dijangkakan:
名 姓 ---------------------------------- abcd efgh ijk lm opq asd asdjja asb asd asd NULL
Penyelesaian:
Kaedah sebelumnya mungkin tidak mengendalikan semua format nama dengan betul. Berikut ialah penyelesaian yang dipertingkat menggunakan T-SQL:
SELECT CASE WHEN name LIKE '% %' THEN SUBSTRING(name, 1, CHARINDEX(' ', name) - 1) ELSE name END AS first_name, CASE WHEN name LIKE '% %' THEN SUBSTRING(name, CHARINDEX(' ', name) + 1, LEN(name)) ELSE NULL END AS last_name FROM YourTable;
Kod SQL ini mula-mula menyemak kehadiran ruang dalam nama. Jika ada, ia menggunakan fungsi SUBSTRING
untuk mengekstrak bahagian sebelum ruang sebagai nama pertama dan bahagian selepas ruang sebagai nama akhir. Jika tiada ruang dalam nama, keseluruhan nama digunakan sebagai nama pertama dan nama akhir ialah NULL. Ini lebih mantap daripada penyelesaian sebelumnya dan mengendalikan pelbagai format nama dengan lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Satu Lajur Nama kepada Lajur Nama Pertama dan Akhir dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!