首页 > 解决方案 > 自己获取名字和姓氏

问题描述

我需要帮助才能分别获取名字和姓氏。

该字段是 [FullName]:Halsey S Dunn

我可以单独获得名字,但不能单独获得姓氏:

这是我的名字和姓氏代码:

,SUBSTRING([FullName], 1, CHARINDEX(' ', [FullName]) - 1) AS [FirstName]
,SUBSTRING(
            [FullName],1 + CHARINDEX(' ', [FullName]),LEN([FullName])) as [LastName]

我的结果需要是:

FirstName- Halsey
LastName- Dunn

标签: sqltsql

解决方案


假设您使用的是 SQL Server,您可以尝试以下操作:

例子

create table people (fullname varchar(100));
insert into people values ('Harvey S Dunn');
insert into people values ('Tony Mony');

SQL

SELECT 

   left(fullname, charindex(' ', fullname)) as firstname,

   reverse(
     right(
        reverse(fullname),
        len(fullname) - nullif(charindex(' ', reverse(fullname)),0)
     )
   ) as fullname_without_lastname,
      
   reverse(
      left(
        reverse(fullname),
        charindex(' ', reverse(fullname)) - 1
      )
   ) as lastname
      
from people;

结果

fullname_without_lastname
哈维 哈维小号 邓恩
托尼 托尼

您可以根据自己的方便进行调整的工作示例

https://dbfiddle.uk/?rdbms=sqlserver_2019&fiddle=ed30499b6651f5bfdf5902ba3ee48747


推荐阅读