2026-03-09 10:56:26 +08:00

41 lines
815 B
Transact-SQL

/****** Object: UserDefinedFunction [dbo].[Find_In_Set] Script Date: 08/13/2025 12:30:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- 创建自定义函数
create FUNCTION [dbo].[Find_In_Set] (@str NVARCHAR(255), @strlist NVARCHAR(MAX))
RETURNS INT
AS
BEGIN
DECLARE @pos INT = 1;
DECLARE @currentStr NVARCHAR(255);
DECLARE @startPos INT = 1;
DECLARE @endPos INT;
WHILE @startPos <= LEN(@strlist)
BEGIN
SET @endPos = CHARINDEX(',', @strlist, @startPos);
IF @endPos = 0
SET @endPos = LEN(@strlist) + 1;
SET @currentStr = SUBSTRING(@strlist, @startPos, @endPos - @startPos);
IF @currentStr = @str
RETURN @pos;
SET @startPos = @endPos + 1;
SET @pos = @pos + 1;
END;
RETURN 0;
END;
GO