【发布时间】:2020-04-01 10:02:17
【问题描述】:
我试图从包含全名格式的名称列中提取姓氏、名字、中间名。
这是我要提取的示例名称:
DELA CRUZ, JUAN PONCE SR. ENRILE
ATIENZA, ROBERTO JR. SANTO
GONZA, MARK ANTHONY, DELLY-LO
我想像这样提取它们:
LastName | FirstName | MiddleName
DELA CRUZ | JUAN PONCE SR. | ENRILE
ATIENZA | ROBERTO JR. | SANTOS
GONZA | MARK ANTHONY | DELLY
这是我目前的脚本
DECLARE @Name VARCHAR(50) = 'DELA CRUZ, JUAN PONCE SR. ENRILE'
SELECT
SUBSTRING(@Name, 0, CharIndex(',', @Name)) LastName,
REVERSE(LEFT(REVERSE(@Name), CharIndex(' ', reverse(@Name))-1)) MiddleName
我在提取带有 -LO 后缀的中间时也遇到了问题。
谢谢
【问题讨论】:
-
我希望您现在已经学会了永远不要将数据存储为逗号分隔值。
-
在考虑名称时,this 是有价值的阅读
-
@jarlh 是的,提取这种数据很痛苦,但我不是设计这个数据库的人
-
你说
-LO有问题,你想怎么处理?看起来你只是想忽略它,所以你正在改变人们的名字,那么? -
抱歉忘了说 -LO 不是他们名字的一部分
标签: sql sql-server