About SQL Server Management Studio stored procedure.
The following variables ‘|’ I want to separate it from. How can I do it?
'628391|28100|8304|3|1201129|12|Kg|M01|SERIOUSLY CHUNKY WOOL' '627452|70462|618|60|100059|72|Ad|M01|THICK & QUICK STRIPES' '617213|99233|89|10|18754|12|Kg|M01|FASHION KC ARAN 400'
Advertisement
Answer
You can use the following query
DECLARE @PL AS VARCHAR(MAX)='628391|28100|8304|3|1201129|12|Kg|M01|SERIOUSLY CHUNKY WOOL' SELECT value FROM string_split(@PL,'|') +-----------------------+ | value | +-----------------------+ | 628391 | | 28100 | | 8304 | | 3 | | 1201129 | | 12 | | Kg | | M01 | | SERIOUSLY CHUNKY WOOL | +-----------------------+
EDIT
DROP TABLE IF EXISTS TestStrList DECLARE @query AS NVARCHAR(MAX) DECLARE @PL AS VARCHAR(MAX)='628391|28100|8304|3|1201129|12|Kg|M01|SERIOUSLY CHUNKY WOOL' DECLARE @cOL AS VARCHAR(MAX) SELECT value INTO TestStrList FROM string_split(@PL,'|') select @cOL = STUFF((SELECT ',' + QUOTENAME(value) FROM TestStrList FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'') set @query = N'SELECT ' + @cOL + N' from ( select value from TestStrList ) x pivot ( max(value) for value in (' + @cOL + N') ) p ' exec sp_executesql @query; +--------+-------+------+---+---------+----+----+-----+-----------------------+ | 628391 | 28100 | 8304 | 3 | 1201129 | 12 | Kg | M01 | SERIOUSLY CHUNKY WOOL | +--------+-------+------+---+---------+----+----+-----+-----------------------+ | 628391 | 28100 | 8304 | 3 | 1201129 | 12 | Kg | M01 | SERIOUSLY CHUNKY WOOL | +--------+-------+------+---+---------+----+----+-----+-----------------------+