Reputation: 7228
With a query i get this string "Order::Resource(PPP32#BB300320LQ00J#AAAR05504)"
.
I want to extract string before, between and after # character as following:
id = PPP32
sub_id = BB300320LQ00J
sup_id =AAAR05504
Does anyone know how to do this?
Upvotes: 2
Views: 29638
Reputation: 51494
declare @start int, @end int, @secondstring varchar(100)
select @start = charindex('#',@string)
select @secondstring = substring(@string, @start+1, len(@string))
select @end = charindex('#',@secondstring)
select substring(@string,1, @start-1),
substring(@string,@start+1,@end-1),
substring(@string, @start+@end+1, len(@string)-@end)
Upvotes: 3
Reputation: 66697
Here's the correct solution:
declare @string varchar(50)
select @string = 'Order::Resource(PPP32#BB300320LQ00J#AAAR05504)'
declare @start int, @end int, @secondstring varchar(100)
select @start = charindex('#',@string)
select @secondstring = substring(@string, @start+1, len(@string))
select @end = charindex('#',@secondstring)
select substring(@string,charindex('(', @string)+1, @start-1-charindex('(', @string)),
substring(@string,@start+1,@end-1),
substring(@string, @start+@end+1, len(@string)-(@start+@end+1))
Upvotes: 3