首页 >数据库 >mysql教程 >如何在 SQL 中将单个'名称”列拆分为'名字”和'姓氏”列?

如何在 SQL 中将单个'名称”列拆分为'名字”和'姓氏”列?

Susan Sarandon
Susan Sarandon原创
2025-01-13 11:54:43300浏览

How to Split a Single

将单列值拆分为多个列

任务是将单个“姓名”列中的值拆分为多个列,包括名字和姓氏。您希望省略中间名,并将结果数据显示在“first_name”和“last_name”列中。

自定义解决方案

建议的方法可能不适用于处理各种名称格式。但是,自定义 SQL 查询可以实现此目的:

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

此查询使用 Charindex 函数查找“姓名”列中第一个空格字符的位置。如果找到空格,则将姓名拆分为名字和姓氏部分。如果没有找到空格,则将整个姓名分配给名字列,并将 NULL 值分配给姓氏列。 RIGHT 函数的第二个参数已修正为使用 LEN(name) 计算字符串长度,确保正确提取姓氏。

以上是如何在 SQL 中将单个'名称”列拆分为'名字”和'姓氏”列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn