как извлечь подстроку из строки в sybase?

С запросом я получаю эту строку "Order::Resource(PPP32#BB300320LQ00J#AAAR05504)". Я хочу извлечь строку до, между и после символа # следующим образом:

идентификатор = PPP32

sub_id = BB300320LQ00J

sup_id =AAAR05504

Кто-нибудь знает, как это сделать?


person itro    schedule 29.08.2012    source источник


Ответы (2)


Вот правильное решение:

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))
person aF.    schedule 29.08.2012
comment
CHARINDEX - [FairCom][ODBC FairCom Driver 9.5.59340(Build-120902)][ctreeSQL] -20183 Функция не найдена - person Zhang; 26.12.2018

person    schedule
comment
Функция charindex принимает только 2 аргумента в sybase. - person aF.; 29.08.2012