dwain.c (3/6/2014)
There's no reason to call DelimitedSplit8K twice, even if it is super-efficient (bless its heart):
WITH SampleData (s) AS
(
SELECT 'XYZ00001|Test_b|XYZ00002|Test_a|XYZ00003|Test_c'
)
SELECT s
,Col1=MAX(CASE WHEN ItemNumber%2 = 1 THEN Item END)
,Col2=MAX(CASE WHEN ItemNumber%2 = 0 THEN Item END)
FROM SampleData
CROSS APPLY dbo.DelimitedSplit8K(s, '|')
GROUP BY s, (1+ItemNumber)/2;
+1000 Excellent.
--Jeff Moden
Change is inevitable... Change for the better is not.