1
我有一列有个人全名,包括中间首字母。我试图将全名分隔为名和姓,并删除中间名/首字母。我的数据库中的一些名称有一个中间名/首字母,有些则没有。下面的查询是我正在使用的,他们都只做了一半的把戏。SQL Server:分开名字和姓氏,并将中间名字初始化为两列
查询#1:返回所述第一名称和中间名/在第2列的初始和消除了姓:
FirstName = LEFT(fullname, CHARINDEX(' ', fullname)),
LastName = RIGHT(fullname, CHARINDEX(' ', REVERSE(fullname)))
查询#2:返回所述第一名称和结合了中间名/初始用姓氏(两者之间有空格):
FirstName = left(fullname,CHARINDEX(' ',fullname)),
LastName = SUBSTRING(fullname, CHARINDEX(' ',fullname)+1,LEN(fullname)-(CHARINDEX(' ',fullname)-1))
请记住,你会遇到姓氏为多个姓氏的人的问题,例如van der Beek或del Rio等。如果需要,你可以将常见问题作为单独案例处理。 –