CREATE FUNCTION [DBO].[F_CHAR_SPLIT_TO_TABLE]
(@CHAR_LIST VARCHAR(MAX),@SIGN NVARCHAR(1))
RETURNS @T_1 TABLE(ID INT,VALUE VARCHAR(MAX))
AS
BEGIN
DECLARE @INTPOS INT,
@SP_CHAR VARCHAR(MAX)
DECLARE @INDEX INT
SET @INDEX=1
IF LEN(ISNULL(@CHAR_LIST,''))=0
RETURN
ELSE IF LEN(ISNULL(@SIGN,''))=0
INSERT INTO @T_1 SELECT @INDEX,@CHAR_LIST
ELSE
BEGIN
SET @INTPOS=CHARINDEX(@SIGN,@CHAR_LIST)
WHILE (@INTPOS>=0)
BEGIN
IF @INTPOS>0
SET @SP_CHAR=LEFT(@CHAR_LIST,@INTPOS-1)
ELSE
SET @SP_CHAR=@CHAR_LIST
INSERT INTO @T_1 SELECT @INDEX,@SP_CHAR
SET @CHAR_LIST=RIGHT(@CHAR_LIST,LEN(@CHAR_LIST)-@INTPOS)
IF @INTPOS>0
SET @INTPOS=CHARINDEX(@SIGN,@CHAR_LIST)
ELSE
SET @INTPOS=-1
SET @INDEX=@INDEX+1
END
END
RETURN
END
SQL拆分函數
最新推荐文章于 2022-04-19 10:09:21 发布