Klasický problém, který řešíme téměř každý den je, jak si převést seznam hodnot oddělených čárkou nebo jiným znakem z textového řetězce do tabulkového formátu, abychom s daty mohli dále pracovat. Jednou z možností je využití schopností T-SQL jazyka pro práci s XML daty. Náš testovací řetězec si jednoduše pomocí REPLACE() převedeme na řetězec ve formátu XML, která následně pomocí NODES() funkce převedeme na data v tabulárním formátu:
DECLARE @var NVARCHAR(MAX)
DECLARE @xml XML
SET @var = '1,2,3,4,5'
SET @xml = N'<root><r>' + REPLACE(@var,',','</r><r>') + '</r></root>'
SELECT [t].[value]('.','int') AS [Id]
FROM @xml.[nodes]('//root/r') AS [a]([t])
GO

Od verze SQL Server 2016 (compatibility level = 130) už naštěstí nemusíme podobný scénář absolvovat a stačí využití novou funkci pro parsování řetězců STRING_SPLIT():
DECLARE @var NVARCHAR(MAX) SET @var = '1,2,3,4,5' SELECT * FROM STRING_SPLIT(@var, ',') GO

