-1
我想將名稱字段分隔到適當的字段中。名稱字段不一致。它可以顯示爲李四III,約翰·w^或DOE,約翰,或李四III,約翰,或李四,約翰·w^或者它可能缺乏的後綴,或中間名首字母。任何想法將不勝感激。解析SQL中的名稱字段
SELECT (
CASE LEN(REPLACE(FirstName, ' ', ''))
WHEN LEN(FirstName + ' ') - 1
THEN PARSENAME(REPLACE(FirstName, ' ', '.'), 2)
ELSE PARSENAME(REPLACE(FirstName, ' ', '.'), 3)
END
) AS LastName
,(
CASE LEN(REPLACE(FirstName, ' ', ''))
WHEN LEN(FirstName + ',') - 1
THEN NULL
ELSE PARSENAME(REPLACE(FirstName, ' ', '.'), 2)
END
) AS Suffix
,PARSENAME(REPLACE(FirstName, ' ', '.'), 1) AS FirstName
FROM Trusts.dbo.tblMember
我所需要的名字無論何種格式,如上所述,爲了解析成名字,後綴,姓,MiddleInitial,的相應的字段而不管其是否具有一個後綴或一箇中間初始
請參閱[如何提出一個很好的SQL問題(https://meta.stackoverflow.com/a/271056/5234334),並提及你的數據庫,預期的結果,樣本數據 – Utsav
我曾嘗試以下內容: \t(LEN(REPLACE(FirstName,'',''))LEN(FirstName +'') - 1 then PARSENAME(REPLACE(FirstName,'','。'),2) (LEN(REPLACE(FirstName,'','')),當LEN(FirstName +',') - 1時,返回PARSENAME(REPLACE(FirstName,'','。'),3)end)作爲LastName, \t然後null否則PARSENAME(REPLACE(FirstName,'','。'),2)end)作爲後綴, \t PARSENAME(替換(名字,'','。'),1)作爲名字 來自Trusts.dbo.tblMember – Marshall
然後問題是非常含糊不清樣本數據,它處理所有的情況和您的預期輸出基於此。使用rextester.com創建表並在SQL服務器中插入示例行,並根據這些信息告訴我們您的預期輸出。 – Utsav