【发布时间】:2019-01-28 01:24:27
【问题描述】:
我似乎找不到关于将字符串拆分为我需要的部分的现有帖子。我在 SQL Server 中有一个数据库字段,其中包含“LastName FirstName MI”(没有逗号,只是分隔人名每个部分的空格)。我有以下 SQL 来获取名字和姓氏,但不知道如何获取中间名或中间名。
例如。能源部约翰B
SELECT
RTRIM(LEFT([PATIENT_NAME], CHARINDEX(' ', [PATIENT_NAME]))) AS LastName,
SUBSTRING([PATIENT_NAME], CHARINDEX(' ', [PATIENT_NAME]) + 1, LEN([PATIENT_NAME])) AS FirstName
FROM
Clients
结果:
- 名字 = 约翰 B
- 姓氏 = Doe
如何在此SELECT 语句中仅返回不带中间名首字母的名字并从该字符串中获取“B”作为中间名?
【问题讨论】:
-
这篇文章在处理名字时总是让我咯咯笑:Falsehoods Programmers Believe About Names
-
你的 sql server 版本是多少?
-
捎带@Larnu 的评论:您有什么保证某人的名字将采用您提供的格式?如果某人的姓名在这种格式中不是,您期望会发生什么?有两个姓氏(在西班牙国家很常见)或没有姓氏的人呢?我预见到你未来的问题......
标签: sql sql-server tsql