嗨我需要提取姓氏,母姓和姓名以及表格的名称,主要由拉丁名字组成,因此大多数人都有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
感谢您的时间和帮助
答案 0 :(得分:1)
计算@ t.name中每个值的名称数量可能会有所帮助。例如Gomez Flores Roberto有3和DELGADO PEREZ MARIA TERESA有4.从他们那里获得最大数量将告诉你你将需要哪些领域,并允许你在一定数量后进行一些数据清理或截断。 发现这篇可能有用的好文章。