2015-09-04 41 views
0

我知道類似的問題比比皆是在interweb上,但我找不到解決方案到這個確切的問題。我有兩列Firstname和Lastname,一些名字在列中有中間首字母,一些姓氏在列中有',suffix'。我之前使用過LTRIM(RTRIM(SUBSTRING(lastname, 0, CHARINDEX(',', lastname)))) As lastnameLTRIM(RTRIM(SUBSTRING(FirstName, CHARINDEX(' ', FirstName) +1, 20))) AS FirstName,但如果姓氏沒有中間首字母/姓名或沒有後綴,則返回空白結果。我嘗試了幾種不同的組合,但沒有運氣。我需要一種方法來忽略中間首字母,如果有一個,但如果沒有一個(基於空格)仍然返回第一個名字,並且忽略最後一個名字後綴(如果有的話),但如果還沒有返回姓氏(以逗號爲基礎)拆分字符串,但只有在必要時

回答

2

嘗試一個case語句。例如:

case when CHARINDEX(',', lastname) <> 0 
    then LTRIM(RTRIM(SUBSTRING(lastname, 0, CHARINDEX(',', lastname)))) 
    else lastname 
end As lastname 

與您的名字表達式類似。

+0

最簡單的答案無法回答。謝謝@Ben Thul –