2016-09-26 36 views
-1

我有一列名字,但名字和中间名都组合在此列中。例如,列名是FirstName并包含Jim JR。在此列旁边,我有一个MiddleName列,当前为空。我想拆分JR。在Jim从FirstName列和MiddleName之后。空格后的分割字段(名)

+1

[T-SQL子 - 分离的姓和名]的可能的复制(http://stackoverflow.com/questions/10921400/t-sql-substring-separating-first-and-last-名称) – scsimon

+0

请查看[how-to-ask](http://stackoverflow.com/help/how-to-ask) – swe

+1

从设计角度来看,中间名称列是有问题的。例如,一个女孩可能被命名为乔安·米歇尔·史密斯,其中“乔安”是她的名字,米歇尔是她的中间名。更甚于文化命名系统,甚至没有中间名的概念,而是多字的名字,如阿卜杜勒拉赫曼,其中拉赫曼是名中最重要的部分,而不是中间名。如果你的数据库有一个给定名称列和一个姓氏列,不要试图将它转换为first/middle/last,你会变得越来越糟糕。 – hatchet

回答

0

如果它们被空格分隔,则可以使用CHARINDEX(' ',FirstName)SUBSTRING()。像:

SUBSTRING(FirstName, 
      CHARINDEX(' ',FirstName), 
      LEN(FirstName)-CHARINDEX(' ',FirstName))