您好,我需要提取姓氏,母亲姓氏和名称以及其主要由拉丁名字组成的名称和名称,所以大多数人都有2个名字+,我找到了一种方法使用下面的代码。 我的问题是如果有更好的方法来做到这一点?从表格中提取姓氏,姓氏和姓氏
Declare @t table ([Name] varchar(100))
insert into @t (Name)
VALUES ('Gomez Flores Roberto'), ('DELGADO PEREZ MARIA TERESA'), ('MARTINEZ VELASCO MARTIN AGUSTIN DOMINGO'), ('BURGOS JIMENEZ ERNESTO')
SELECT
substring(name,0,charindex(' ',name)) as LasName
,substring(substring(name, charindex(' ',name)+1,(len(name)- charindex(' ',name))),0,charindex(' ',substring(name, charindex(' ',name)+1,(len(name)- charindex(' ',name))))) MiddleName
,substring(substring(name, charindex(' ',name)+1,(len(name)- charindex(' ',name))), charindex(' ',substring(name, charindex(' ',name)+1,(len(name)- charindex(' ',name))))+1,(len(substring(name, charindex(' ',name)+1,(len(name)- charindex(' ',name))))- charindex(' ',substring(name, charindex(' ',name)+1,(len(name)- charindex(' ',name)))))) as Name
FROM @t
感谢您对您的时间和帮助
最好的办法是存储在单独的列中的值 - 名字,姓氏等 – TGH 2014-10-29 01:20:43
没有更好的方式来做到这一点,因为你将有违反各种异常的你现有的规则。 “Dennis de la Mosely-Williams”和“Oscar van der Nutz III”,就是这样。正是出于这个原因,数据清理工具非常昂贵。 – 2014-10-29 02:58:04
@AaronBertrand感谢你在完成这件事之后正在处理那些问题。 – lGansito 2014-10-29 19:59:45