Мы можем создать функцию как это
CREATE Function [dbo].[fn_CSVToTable]
(
@CSVList Varchar(max)
)
RETURNS @Table TABLE (ColumnData VARCHAR(100))
AS
BEGIN
IF RIGHT(@CSVList, 1) <> ','
SELECT @CSVList = @CSVList + ','
DECLARE @Pos BIGINT,
@OldPos BIGINT
SELECT @Pos = 1,
@OldPos = 1
WHILE @Pos < LEN(@CSVList)
BEGIN
SELECT @Pos = CHARINDEX(',', @CSVList, @OldPos)
INSERT INTO @Table
SELECT LTRIM(RTRIM(SUBSTRING(@CSVList, @OldPos, @Pos - @OldPos))) Col001
SELECT @OldPos = @Pos + 1
END
RETURN
END
. Затем мы можем отделить значения CSV в наших соответствующих столбцах, используя инструкцию SELECT