Project

General

Profile

Feature #3942 » fn_SplitString.sql

Tri Rizqiaty, 10/09/2025 03:20 PM

 
1
CREATE FUNCTION dbo.fn_SplitString
2
(
3
    @List NVARCHAR(MAX),
4
    @Delimiter CHAR(1)
5
)
6
RETURNS @Result TABLE (Value NVARCHAR(500))
7
AS
8
BEGIN
9
    DECLARE @Pos INT, @NextPos INT, @Value NVARCHAR(500)
10

    
11
    SET @List = LTRIM(RTRIM(@List))
12
    SET @Pos = 1
13

    
14
    WHILE @Pos <= LEN(@List)
15
    BEGIN
16
        SET @NextPos = CHARINDEX(@Delimiter, @List, @Pos)
17
        IF @NextPos = 0 
18
            SET @NextPos = LEN(@List) + 1
19

    
20
        SET @Value = LTRIM(RTRIM(SUBSTRING(@List, @Pos, @NextPos - @Pos)))
21

    
22
        IF @Value <> ''
23
            INSERT INTO @Result (Value) VALUES (@Value)
24

    
25
        SET @Pos = @NextPos + 1
26
    END
27

    
28
    RETURN
29
END
(2-2/3)