SQL Server 根據關鍵字和結束符提取字符串子串


/*
@info-待截取的字符串
@indexStr-截取子串的起始字符串
@split-截取子串的結束符號
列入依次傳入
胸片:正常。心電圖:異常,需要注意。血常規檢查:正常。
心電圖
'。'
返回 心電圖:異常,需要注意
*/

CREATE FUNCTION [dbo].[SplitStrForTxt]
(
@info VARCHAR(MAX), 
@indexStr VARCHAR(50),
@split CHAR(2)
)
RETURNS VARCHAR(MAX)
AS
BEGIN

DECLARE @index INT, @leftLength INT, @allLength INT,@strSplit VARCHAR(100),@splitIndex INT
IF @info='' OR  @info IS NULL OR LEN(@info)<LEN(@indexStr)
RETURN '不詳'
SET @index=PATINDEX('%'+@indexStr+'%',@info)
SET @leftLength=LEN(LEFT(@info,@index))
SET @allLength=LEN(@Info)
SET @strSplit=SUBSTRING(@Info,@leftLength,@allLength-@leftLength)
SET @splitIndex=CHARINDEX(@split,SUBSTRING(@Info,@leftLength,@allLength-@leftLength))
 IF LEN(SUBSTRING(@strSplit,0,@splitIndex))=''
   RETURN '不詳';

RETURN SUBSTRING(@strSplit,0,@splitIndex);

          
END

GO

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM