謝謝你的幫助。我最終使用了一個Case語句來獲得我需要的東西。這看起來有點粗糙,但看起來像我需要的是可靠的:
CASE
WHEN (mytable.L_NAME like '% Jr') Then SUBSTRING(mytable.L_NAME, 1,CHARINDEX(' ', mytable.L_NAME) - 1)
WHEN (mytable.L_NAME like '% Sr') Then SUBSTRING(mytable.L_NAME, 1,CHARINDEX(' ', mytable.L_NAME) - 1)
WHEN (mytable.L_NAME like '% II') Then SUBSTRING(mytable.L_NAME, 1,CHARINDEX(' ', mytable.L_NAME) - 1)
WHEN (mytable.L_NAME like '% III') Then SUBSTRING(mytable.L_NAME, 1,CHARINDEX(' ', mytable.L_NAME) - 1)
WHEN (mytable.L_NAME like '% IV') Then SUBSTRING(mytable.L_NAME, 1,CHARINDEX(' ', mytable.L_NAME) - 1)
WHEN (mytable.L_NAME like '% V') Then SUBSTRING(mytable.L_NAME, 1,CHARINDEX(' ', mytable.L_NAME) - 1)
WHEN (mytable.L_NAME like '% VI') Then SUBSTRING(mytable.L_NAME, 1,CHARINDEX(' ', mytable.L_NAME) - 1)
ELSE mytable.L_NAME
END
AS LastName,
CASE
WHEN (mytable.L_NAME like '% Jr') Then 'Jr'
WHEN (mytable.L_NAME like '% Sr') Then 'Sr'
WHEN (mytable.L_NAME like '% II') Then 'II'
WHEN (mytable.L_NAME like '% III') Then 'III'
WHEN (mytable.L_NAME like '% IV') Then 'IV'
WHEN (mytable.L_NAME like '% V') Then 'V'
WHEN (mytable.L_NAME like '% VI') Then 'VI'
ELSE NULL
END
AS Suffix,
如果沒有後綴,會發生什麼? – Femi 2011-05-12 14:19:59
類似的文章:http://stackoverflow.com/questions/630907/mssql-split-a-field-into-3-fields – garnertb 2011-05-12 14:21:30
名稱本質上是邪惡複雜的,因爲一個人的名字可能存在大約1000種方式。這裏有一個博客http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/parsing-fullname-field-to-individual – DForck42 2011-05-12 14:27:22