首页 > 解决方案 > 试图将全名解析为 SQL 中的两列

问题描述

我有一个棘手的情况。

我试图解析的当前名称字段是这种形式:

Last, First MI

例如:

Doe, John M 
Solis Olvera, Miguel P
Del Cid Donis, Emily D

我需要将其解析为姓和名列,并省略 MI。

我如何实现这一目标?我使用了 charindex 和 substring 的组合,但无法达到所需的分辨率。

我当前的逻辑是将所有内容放在姓氏的逗号左侧和逗号的右侧,但在名字的第一个空格之前。我不确定如何实现后者..

这是我到目前为止所尝试的:

select [patient name]
      ,left([patient name],charindex(',',[patient name])-1)
      ,substring([patient name],charindex(',',[patient name])+2,
        (CHARINDEX(' ',[patient name],CHARINDEX(' ',[patient name]) + 1)) - 
        (charindex(' ',[patient name])+1))  
    from Riskpool.dbo.RP_MasterFile a

我无法弄清楚每一行中逗号后面的空格的逻辑..

任何帮助表示赞赏。

谢谢

标签: sqlsubstringcharindex

解决方案


推荐阅读