从表中提取姓氏,母姓和姓名

时间:2014-10-29 01:17:52

标签: sql-server sql-server-2005

嗨我需要提取姓氏,母姓和姓名以及表格的名称,主要由拉丁名字组成,因此大多数人都有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

感谢您的时间和帮助

1 个答案:

答案 0 :(得分:1)

计算@ t.name中每个值的名称数量可能会有所帮助。例如Gomez Flores Roberto有3和DELGADO PEREZ MARIA TERESA有4.从他们那里获得最大数量将告诉你你将需要哪些领域,并允许你在一定数量后进行一些数据清理或截断。 发现这篇可能有用的好文章。

http://www.mssqltips.com/sqlservertip/3233/name-parsing-with-sql-server-functions-and-tsql-programming/