Pages

Hàm cắt chuỗi ký tự phân biệt bởi ký tự mà ta muốn cắt thành bảng dữ liệu

-- dùng để sử dụng để kiểm tra các giá trị mà ta lưu trữ dạng chuỗi
-- ví dụ: quan trọng, ưu tiên, cấp bách,....
-- by code4viet --

Create FUNCTION [dbo].[code4viet_Split2Table]
(
    @string nvarchar(max),
    @delimiter CHAR(1)
)

RETURNS @output TABLE(
    OrderId bigint,
    [Value] nvarchar(max)
)

BEGIN
    DECLARE @start INT, @end INT, @count INT
    SELECT @start = 1, @end = CHARINDEX(@delimiter, @string), @count = 0
    WHILE @start < LEN(@string) + 1
    BEGIN

        IF @end = 0
            SET @end = LEN(@string) + 1
        INSERT INTO @output
            (OrderId,[Value])
        VALUES(@count, SUBSTRING(@string, @start, @end - @start))

        SET @start = @end + 1
        SET @end = CHARINDEX(@delimiter, @string, @start)
        set @count = @count +1
    END
    RETURN;
END

GO
-- Kiểm tra --

select *
from [dbo].[code4viet_Split2Table](N'quan trọng,ưu tiên,cấp bách',',')

Không có nhận xét nào :

Đăng nhận xét