拆分字符串但仅在必要时

时间:2015-09-04 22:10:50

标签: tsql string-split

我知道互联网上有类似的问题,但我找不到这个问题的解决方案。我有两列Firstname和Lastname,一些名字在列中有中间的首字母,一些姓氏在列中有',suffix'。我之前使用过LTRIM(RTRIM(SUBSTRING(lastname, 0, CHARINDEX(',', lastname)))) As lastnameLTRIM(RTRIM(SUBSTRING(FirstName, CHARINDEX(' ', FirstName) +1, 20 ))) AS FirstName但如果没有中间名/姓名或没有姓氏后缀,则会返回空白结果。我尝试了几种不同的组合,没有运气。我需要一种方法来忽略一个中间的初始,如果有一个但仍然返回第一个名称,如果没有一个(基于空格)并忽略姓氏后缀,如果有一个,但仍然返回姓氏,如果有不是(基于逗号)

1 个答案:

答案 0 :(得分:2)

尝试一个案例陈述。例如:

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

与您的名字表达式相似。

相关问题