with cteSource AS
( SELECT 'abc123455' as col1 UNION ALL
SELECT 'abd3454565'
)
SELECT
LEFT(col1,3) +
REPLACE(STR(SUBSTRING(col1,4,LEN(col1)-3),12-3),' ','0') as newCol1
,LEFT(col1,3) +
RIGHT('000000000' + SUBSTRING(col1,4,LEN(col1)-3),12-3) as newCol2
FROM
cteSource AS S
drop table #data
go
create table #data
(
string123 varchar(100)
)
go
insert into #data select 'abc11122'
insert into #data select 'dqw1234455'
insert into #data select 'fgt775'
go
select * from #data
go
with cteSource AS
( SELECT 'abc123455' as col1 UNION ALL
SELECT 'abd3454565' union all
SELECT 'abc1234g' UNION ALL
SELECT 'asc12345h'
)
,cteSourcePlus AS
(SELECT col1
, CASE WHEN RIGHT(col1,1) LIKE '[a-zA-Z]' THEN 1 ELSE 0 END AS isAlpha
, CASE WHEN RIGHT(col1,1) LIKE '[a-zA-Z]' THEN RIGHT(col1,1) ELSE '' END AS lastAlpha
FROM cteSource)
SELECT
LEFT(col1,3)
+ RIGHT('000000000'
+ SUBSTRING(col1,4,LEN(col1) - (3+isAlpha))
,12-3) /* for numeric part*/
+ lastAlpha /* for alphabetic part*/
AS newCol2
FROM
cteSourcePlus AS S
select case
when RIGHT(col1,1) LIKE '[0-9]' then LEFT(invoice,3) +RIGHT('000000000000' + SUBSTRING(col1,4,LEN(col1)-3),12-3)/for Numeric/
when RIGHT(col1,1) LIKE '[a-zA-Z]' THEN LEFT(invoice,3) +RIGHT('000000000000' + SUBSTRING(col1,4,LEN(col1)-3),13-3)/for alpha/
end string from table1
;WITH cteSource AS
( SELECT 'abc123455' as col1 UNION ALL
SELECT 'abd3454565' union all
SELECT 'abc1234g' UNION ALL
SELECT 'asc12345h'
)
SELECT
col1,
STUFF(col1, 4, 0, REPLICATE('0', 12 - LEN(col1) +
CASE WHEN RIGHT(col1,1) LIKE '[a-zA-Z]' THEN 1 ELSE 0 END))
AS newCol2
FROM
cteSource AS S
Drop table Characters
create table Characters
(
Titles char(50)
)
insert into Characters values('abc123')
insert into Characters values('abc35567')
insert into Characters values('rrr8911789')
insert into Characters values('abc12')
select b + a from (
select left(Titles,(patindex('%[0-9]%',Titles)-1)) as b,right(rtrim(('00000000' + substring(Titles,patindex('%[0-9]%',Titles),len(Titles)))),9) as a