gpt4 book ai didi

sql - 提取名字和姓氏

转载 作者:行者123 更新时间:2023-12-04 13:32:44 24 4
gpt4 key购买 nike

我在名为 test 的表中有一个名为 Name 的列,它具有全名,我正在尝试提取名字和姓氏。所以我写了这样的查询:

SELECT 
[Name],
LEFT([Name],CHARINDEX(' ',[Name])-1) AS FIRST_NAME,
SUBSTRING([Name],CHARINDEX(' ',[Name])+1,LEN([Name])) AS LAST_NAME
FROM Test

但它给了我错误说:

消息 537,级别 16,状态 2,第 1 行
传递给 LEFT 或 SUBSTRING 函数的长度参数无效。

那是因为我在名称中有一些值,例如:

姓名:

霍普金斯大学

我如何处理这些?

最佳答案

Declare @t table ( [Name] varchar(100) )

insert into @t ( Name )
VALUES ( 'dennis hopper' ), ('keanu reaves'), ('thatgirl')

SELECT
[Name],
CHARINDEX(' ', [Name]),
CASE WHEN CHARINDEX(' ', [Name]) > 0 THEN
LEFT([Name],CHARINDEX(' ',[Name])-1)
ELSE
[Name]
END as FIRST_NAME,
CASE WHEN CHARINDEX(' ', [Name]) > 0 THEN
SUBSTRING([Name],CHARINDEX(' ',[Name])+1, ( LEN([Name]) - CHARINDEX(' ',[Name])+1) )
ELSE
NULL
END as LAST_NAME
FROM @t

关于sql - 提取名字和姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5145791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com