在字串中取某一字串
目的:在 存款:活存目前餘額: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)