我在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
有人可以帮忙吗?提前谢谢!
答案 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