Tôi đồng ý rằng việc chuyển một tệp CSV là giải pháp tốt nhất trong trường hợp này. Tôi muốn đề xuất một cách đơn giản hơn để tách chuỗi csv mà không cần tạo bảng và hàm, bằng cách sử dụng CTE:
declare @separator char(1);
set @separator = ',';
;with baseCte as
(select left(@ValueList, charindex(@separator, @ValueList) - 1) as Value,
substring(@ValueList, charindex(@separator, @ValueList) + 1, len(@ValueList))
as rest
union all
select left(rest, charindex(@separator, rest) - 1) as Value,
substring(rest, charindex(@separator, rest) + 1, len(rest)) from baseCte
where len(rest) > 1
)
select Value from baseCte
OPTION (MAXRECURSION 0);