首頁 > 資料庫 > mysql教程 > 如何在 SQL 中將單列姓名拆分為名字列和姓氏列?

如何在 SQL 中將單列姓名拆分為名字列和姓氏列?

DDD
發布: 2025-01-13 10:23:42
原創
1055 人瀏覽過

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

將單列值拆分為多列值

問題:

您想要將包含姓名清單的單列轉換為名和姓的多列。

範例:

姓名
------------
abcd efgh
ijk lmn opq
asd j. asdjja
asb (asdfas) asd
asd
登入後複製

預期輸出:

名             姓
----------------------------------
abcd                     efgh
ijk                      lm opq
asd                      asdjja
asb                      asd
asd                      NULL
登入後複製

解:

之前的方法可能無法正確處理所有姓名格式。以下是用 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;
登入後複製

此 SQL 程式碼首先檢查姓名中是否有空格。如果存在,它使用 SUBSTRING 函數提取空格之前的部分作為名,空格之後的部分作為姓。如果姓名中沒有空格,則以整個姓名為名,姓則為 NULL。 這比之前的解決方案更穩健,更能處理各種姓名格式。

以上是如何在 SQL 中將單列姓名拆分為名字列和姓氏列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板