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