sql - 试图将全名解析为 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
我无法弄清楚每一行中逗号后面的空格的逻辑..
任何帮助表示赞赏。
谢谢
解决方案
推荐阅读
- python - 如何在破折号应用程序中使用下拉菜单刷新 html 地图?
- javascript - 动态显示对象数组
- ios - #包括
无法构建模块“nanopb” - sql - 使用 Oracle SQL 将字符串中的最后一个逗号替换为“and”
- python - 如何在 matplotlib 中进行自动图表大小调整?
- javascript - 如何访问和循环嵌套在另一个对象内的对象内的数组?
- javascript - React 输入去抖动仍在执行方法
- xslt - 通过消除重复代码优化 XSLT 代码
- sql - 如何使用字符串数组过滤 Spark 数据框中的列?
- javascript - 函数有没有办法知道正在使用什么属性?