By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
create table test(SequenceId varchar(20));
insert into test values
('2-10-14')
,('2-8-15')
,('2-8-16')
,('2-8-16')
,('2-17-21')
,('2-0-5')
,('4-1-10')
,('4-1-100')
;
select * from test
SequenceId |
---|
2-10-14 |
2-8-15 |
2-8-16 |
2-8-16 |
2-17-21 |
2-0-5 |
4-1-10 |
4-1-100 |
-- for SQL Server
update test
set SequenceId=
concat(left(SequenceId,len(SequenceId)-charindex('-',reverse(SequenceId))+1)
,cast(cast(right(SequenceId,charindex('-',reverse(SequenceId))-1) as int)-1 as varchar)
);
select * from test;
SequenceId |
---|
2-10-13 |
2-8-14 |
2-8-15 |
2-8-15 |
2-17-20 |
2-0-4 |
4-1-9 |
4-1-99 |
-- for SQL Server 2017
SELECT *
,trim(translate(JSON_modify('[' + replace(SequenceId,'-',',') + ']','$[2]'
,JSON_value('[' + replace(SequenceId,'-',',') + ']','$[2]')-1)
,',[]','- ')) NewSequenceId
FROM test
SequenceId | NewSequenceId |
---|---|
2-10-13 | 2-10-12 |
2-8-14 | 2-8-13 |
2-8-15 | 2-8-14 |
2-8-15 | 2-8-14 |
2-17-20 | 2-17-19 |
2-0-4 | 2-0-3 |
4-1-9 | 4-1-8 |
4-1-99 | 4-1-98 |
-- for SQL Server 2016
SELECT *
,replace(
replace(
replace(JSON_modify('[' + replace(SequenceId,'-',',') + ']','$[2]'
,JSON_value('[' + replace(SequenceId,'-',',') + ']','$[2]')-1)
,',','-')
,'[','')
,']','')NewSequenceId
FROM test
SequenceId | NewSequenceId |
---|---|
2-10-13 | 2-10-12 |
2-8-14 | 2-8-13 |
2-8-15 | 2-8-14 |
2-8-15 | 2-8-14 |
2-17-20 | 2-17-19 |
2-0-4 | 2-0-3 |
4-1-9 | 4-1-8 |
4-1-99 | 4-1-98 |