在字串中取某一字串

在字串中取某一字串

目的:在 存款:活存目前餘額:123456987;定存目前餘額:98765421.11;放款:額度:11111.00 字串中

想要取 存款:活存目前餘額:的數字


DECLARE @Message varchar(100)='存款:活存目前餘額:123456987;定存目前餘額:98765421.11;放款:額度:11111.00';

DECLARE @search VARCHAR(30) ='存款:活存目前餘額:'
DECLARE @location_BGN int --起始位置
DECLARE @location_END int --結束位置


--PATINDEX:傳回指定之運算式中的模式,在所有有效文字和字元資料類型中第一次出現的起始位置,如果找不到模式,便傳回零。
--CHARINDEX:在運算式中搜尋另一個運算式,並在找到時傳回它的開始位置。


  IF PATINDEX('%'+@search +'%', @Message) = 0
  BEGIN
       SELECT 'Not Found!' return;
  END


  SELECT @location_BGN =PATINDEX('%'+@search +'%', @Message) + LEN(@search)


  IF CHARINDEX (';', @Message ,@location_BGN) > 0
       SELECT @location_END = CHARINDEX (';', @Message ,@location_BGN)-@location_BGN
  ELSE
      SELECT @location_END = LEN(@Message)+1-@location_BGN SELECT SUBSTRING(@Message,@location_BGN,@location_END)