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

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

DDD
Lepaskan: 2025-01-13 10:23:42
asal
991 orang telah melayarinya

How to Split a Single Column of Names into First and Last Name Columns in SQL?

Pisah satu nilai lajur kepada berbilang nilai lajur

Soalan:

Anda ingin menukar satu lajur yang mengandungi senarai nama kepada berbilang lajur nama pertama dan nama keluarga.

Contoh:

<code class="language-sql">姓名
------------
abcd efgh
ijk lmn opq
asd j. asdjja
asb (asdfas) asd
asd</code>
Salin selepas log masuk

Keluaran yang dijangkakan:

<code class="language-sql">名             姓
----------------------------------
abcd                     efgh
ijk                      lm opq
asd                      asdjja
asb                      asd
asd                      NULL</code>
Salin selepas log masuk

Penyelesaian:

Kaedah sebelumnya mungkin tidak mengendalikan semua format nama dengan betul. Berikut ialah penyelesaian yang dipertingkat menggunakan T-SQL:

<code class="language-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;</code>
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan