1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| CREATE FUNCTION dbo.FC_SPLIT_without_CTE(
@pi_ListStr VARCHAR(8000),
@pi_Delimiter CHAR(1) = ','
)
RETURNS @List TABLE (Item VARCHAR(8000))
BEGIN
DECLARE @sItem VARCHAR(8000);
DECLARE @Pos SMALLINT;
SET @Pos = CHARINDEX(@pi_Delimiter, @pi_ListStr, 0);
WHILE @Pos > 0
BEGIN
SET @sItem = RTRIM(LTRIM(SUBSTRING(@pi_ListStr, 1, @Pos - 1)));
SET @pi_ListStr = RTRIM(LTRIM(SUBSTRING(@pi_ListStr, @Pos + 1, LEN(@pi_ListStr))));
IF LEN(@sItem) > 0
INSERT INTO @List (Item) VALUES (@sItem);
SET @Pos = CHARINDEX(@pi_Delimiter, @pi_ListStr, 0);
END;
IF LEN(@pi_ListStr) > 0
INSERT INTO @List (Item) VALUES (@pi_ListStr);
RETURN;
END;
GO |
Partager