如何在SQL Server中的特定字符后拆分字符串

时间:2017-04-12 21:17:21

标签: sql

我在SQL Server studio manager 2014中工作

我发现了这一点,它有点接近我想要的东西,但并不完美。

Col2 = RIGHT([HospCode],LEN([HospCode])-CHARINDEX('.',[HospCode]))

我的数据看起来像这样

ABC.FRED.123
ABC.STEVE
ABC.SUSAN
ABC.TED.4456
ABC.WILL
ABC.TABITHA.11
ABC.TODD

我想摆脱“ABC”。和“.xxx”编号部分如果存在,只能看到名称部分。所以我希望我的最终输出是这样的:

FRED
史蒂夫
SUSAN
TED
WILL
TABITHA
TODD

有人可以帮忙吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

一种简单的方法是使用 ParseName()反向()(或两个)

由于Name将始终是两个或三个中的第二个,我们将反转字符串,应用ParseName(...,2),然后将结果反转。

Declare @YourTable table (HospCode varchar(50))
Insert Into @YourTable values
('ABC.FRED.123'),
('ABC.STEVE'),
('ABC.SUSAN'),
('ABC.TED.4456'),
('ABC.WILL'),
('ABC.TABITHA.11'),
('ABC.TODD')

Select A.*
      ,Reverse(ParseName(Reverse(HospCode),2))
 From @YourTable A

返回

HospCode        (No column name)
ABC.FRED.123    FRED
ABC.STEVE       STEVE
ABC.SUSAN       SUSAN
ABC.TED.4456    TED
ABC.WILL        WILL
ABC.TABITHA.11  TABITHA
ABC.TODD        TODD