我在数据库中得到了以下条目(varchar数据类型(:
5-359-258756-54
2-456-58994-85
4-458 -478698-42
5-876-5878-26
我想排除第一个数字加上字符'-',最后两个数字加前一个'-',并删除中间字符'-'中可用的空格。
最终结果必须是:
359-258756
456-58994
458-478698
876-5878
我试着主要使用charindex&patidix替换为","基于论坛建议,但没有显示预期结果,我能返回的最接近的是458-478698-42(删除第一个数字加字符和空格(,
我该如何解决?
如果字符串格式一致,则可以使用parsename()
示例
Declare @YourTable table (SomeCol varchar(50))
Insert Into @YourTable values
('5-359-258756-54')
,('2-456-58994-85')
,('4-458 -478698-42')
,('5-876-5878-26')
Select *
,NewVal = replace(parsename(replace(SomeCol,'-','.'),3)
+'-'
+parsename(replace(SomeCol,'-','.'),2)
,' ','')
From @YourTable
结果
SomeCol NewVal
5-359-258756-54 359-258756
2-456-58994-85 456-58994
4-458 -478698-42 458-478698
5-876-5878-26 876-5878