我有一列爲FullName
,其中包含FirstName
,MiddleName
, LastName
。
例如:SQL-獲取第一個空格後的子字符串和第二個空格分隔列
FullName: Marilyn Kean Kirkland
我想從中取一個字串有FirstName
,從FullName
MiddleName
和LastName
3個獨立的列。
我使用的代碼拉動FirstName
:
substring(c.LegalName, 1, CHARINDEX(' ', c.LegalName)) as 'First Name'
我想知道我怎麼能拉只是其中說到後第一空間和之前第二空間的中間名?
另外,我想拉第二個空格後的姓氏?
這是一個壞主意。並非每個全名都有兩個空格,並且所有名字都不是全部由第一個,中間和最後一個名字組成。 (不是每個人都有一箇中間名(甚至是姓氏);很多人有多個首字母/中間名/姓;第一個/中間/姓可以包含內部空格;額外的後綴可以跟在姓氏後面等等。等等)見http://www.w3.org/International/questions/qa-personal-names。 – ruakh 2015-04-01 19:41:54
['CHARINDEX'](https://msdn.microsoft.com/en-us/library/ms186323(v = sql.100).aspx)有第三個參數。用它。 – GSerg 2015-04-01 19:44:08
@ruakh我知道這是一個壞主意,但這是我們的客戶想要的數據看起來像。你知道我怎麼能拉第一個空格之後和第二個空格之前的中間名,並拉第二個空格之後的姓?如果沒有中間名或最後一個名字,則應將其保留爲空白。您的幫助將不勝感激。 – 2015-04-01 20:40:25