Sql server 2012 使用SELECT将LastName/Suffix/FirstName/MI提取到1NF中

Sql server 2012 使用SELECT将LastName/Suffix/FirstName/MI提取到1NF中,sql-server-2012,Sql Server 2012,我仍然在琢磨如何使用SELECT提取lastname、firstname和后缀。愚蠢的供应商在1个字段中拥有所有内容,而不是执行1NF。如果有人至少可以帮助提取姓和名(后缀是可选的,但会有帮助),这将是非常有帮助的。以下是一些姓名示例: Currently names in database Name 1) Hoover,James 2) Hoover JR,James 3) Hoover,James B 4) Hoover JR,James B 5) Hoover II,James B De

我仍然在琢磨如何使用SELECT提取lastname、firstname和后缀。愚蠢的供应商在1个字段中拥有所有内容,而不是执行1NF。如果有人至少可以帮助提取姓和名(后缀是可选的,但会有帮助),这将是非常有帮助的。以下是一些姓名示例:

Currently names in database
Name
1) Hoover,James
2) Hoover JR,James
3) Hoover,James B
4) Hoover JR,James B
5) Hoover II,James B

Desired result
       LastName     FirstName   Suffix
    1) Hoover       James
    2) Hoover       James       JR
    3) Hoover       James
    4) Hoover       James       JR
    5) Hoover II    James

即使我至少能得到姓(胡佛)和名(詹姆斯),那也没问题。需要在SELECT语句中完成所有操作。

您可以使用
子字符串
CHARINDEX
函数获取所需内容

代码是这样的

要获得姓氏:
选择子字符串(名称、0、LEN(左(名称、CHARINDEX('、'、名称)))

要获取名字,请执行以下操作:
选择子字符串(名称,LEN(左)(名称,CHARINDEX(',',',名称))+1,LEN(名称))

您可以参考此链接:


关于

您在上一节中接受的答案是否解决了您的问题?我发现我需要在SELECT语句中执行所有操作,并且名称的格式不同。因此,我没有继续上一个线程,而是想打开一个新线程,因为另一个解决方案可能会帮助其他人。