我有應該分爲名字,姓氏和中間名的全名。 以下是我的示例名稱。如何從SQL中的給定字符串提取子字符串
1. WILLEMS, JAN MARIE J
2. HLAVACEK, PATRICIA K
3. KLIMEK, CHRISTOPHER
現在我的名字,中間名和姓氏應該是
Firstname Lastname Middlename
JAN MARIE WILLEMS J
PATRICIA HLAVACEK K
CHRISTOPHER KLIMEK
我試着用下面的查詢。
declare @FullName varchar(100)='KLIMEK, CHRISTOPHER'
Select
LTRIM(RTRIM(SUBSTRING(@FullName, 0, CHARINDEX(',', @FullName)))) As LastName
,SUBSTRING(@FullName,CHARINDEX(' ',LTRIM(RTRIM(@FullName)))+1,(LEN(LTRIM(RTRIM(@FullName)))-CHARINDEX(' ',LTRIM(RTRIM(@FullName)))-CHARINDEX(' ',REVERSE(LTRIM(RTRIM(@FullName))))))
,SUBSTRING(@FullName , LEN(LTRIM(RTRIM(@FullName))) - CHARINDEX(' ',REVERSE(LTRIM(RTRIM(@FullName)))) + 2 , LEN(LTRIM(RTRIM(@FullName))))
當它沒有中間名時,這不會給出正確的答案。
您能否提供您的意見?名
什麼SQL引擎和版本嗎? 然後,你期望多首字母縮寫嗎? – gbn
SQL 2012.不是多個姓名縮寫。名字可以有或沒有首字母縮寫 – chits
用逗號分隔,從前面移除空格然後按空格分隔。 – Snowlockk