如何分割在SQL Server
问题描述:
后特定字符的字符串,我在SQL Server工作室经理2014如何分割在SQL Server
工作,我发现了这一点,它是有点接近我想要的东西,但还不太完善。
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
任何人都可以帮助?先谢谢你!
答
一个简单的方法是使用PARSENAME()用反向()(或两个)
由于名称将永远是两个或三个第二,我们扭转字符串,应用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
约翰, 你摇滚我的男人! NI今天花了4个小时搞定了这个!我不知道这里发生了什么,所以我会阅读Parse函数。 真的非常感谢 – DoNotLikeIT
@ DoNotLikeIT对它很有帮助。我会添加更多的上下文 –