【问题标题】:Get First and Last Name By Itself自己获取名字和姓氏
【发布时间】:2021-01-20 23:12:06
【问题描述】:

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

该字段是 [FullName]:Halsey S Dunn

我可以单独获取 FirstName,但不能单独获取 LastName:

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

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

我的结果需要是:

FirstName- Halsey
LastName- Dunn

【问题讨论】:

  • 你将如何处理西班牙双姓?
  • 如果以下答案令人满意,您可以通过将答案标记为已接受来结束您的问题。答案旁边有一个复选标记图标。您可以选择点击对勾接受。

标签: sql tsql


【解决方案1】:

假设您使用的是 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;

结果

firstname fullname_without_lastname lastname
Harvey Harvey S Dunn
Tony Tony Mony

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 2017-06-30
    • 2016-02-22
    • 2015-04-30
    • 1970-01-01
    • 2019-01-06
    • 2021-01-04
    相关资源
    最近更新 更多