3.4.1 分段截取函数.sql

来自「很好的sql 文档,可能邦你成为sql 高手」· SQL 代码 · 共 22 行

SQL
22
字号
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_GetStr]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_GetStr]
GO

--分段截取函数
CREATE FUNCTION dbo.f_GetStr(
@s varchar(8000),      --包含多个数据项的字符串
@pos int,             --要获取的数据项的位置
@split varchar(10)     --数据分隔符
)RETURNS varchar(100)
AS
BEGIN
	IF @s IS NULL RETURN(NULL)
	DECLARE @splitlen int
	SELECT @splitlen=LEN(@split+'a')-2
	WHILE @pos>1 AND CHARINDEX(@split,@s+@split)>0
		SELECT @pos=@pos-1,
			@s=STUFF(@s,1,CHARINDEX(@split,@s+@split)+@splitlen,'')
	RETURN(ISNULL(LEFT(@s,CHARINDEX(@split,@s+@split)-1),''))
END
GO

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?