1. ホーム
  2. sql

[解決済み] sybaseで文字列から部分文字列を抽出する方法は?

2022-02-07 03:44:13

質問

クエリで次のような文字列を取得します。 "Order::Resource(PPP32#BB300320LQ00J#AAAR05504)" . 以下のように、#文字の前、間、後の文字列を抽出したいのですが。

id = PPP32

sub_id = BB300320LQ00J

sup_id =AAAR05504

どなたか方法をご存じないでしょうか?

解決方法は?

正しい解答はこちらです。

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))