Simulating cross apply with CSV-records in SQL Server 2000
DECLARE @Sample TABLE (Col1 VARCHAR(6), Col3 VARCHAR(200))
INSERT @Sample
SELECT '123', '125,124,126' UNION ALL
SELECT '124', '127,21,245'
--SELECT Col1,
-- Data
--FROM @Sample
--CROSS APPLY fnParseList(',', Col3)
SELECT a.Col1,
SUBSTRING(',' + a.Col3 + ',', n.Number + 1, CHARINDEX(',', ',' + a.Col3 + ',', n.Number + 1) - n.Number - 1) AS [Value]
FROM @Sample AS a
INNER JOIN master..spt_values AS n ON SUBSTRING(',' + a.Col3 + ',', n.Number, 1) = ','
WHERE n.Type = 'p'
AND n.Number > 0
AND n.Number < LEN(',' + a.Col3 + ',')
INSERT @Sample
SELECT '123', '125,124,126' UNION ALL
SELECT '124', '127,21,245'
--SELECT Col1,
-- Data
--FROM @Sample
--CROSS APPLY fnParseList(',', Col3)
SELECT a.Col1,
SUBSTRING(',' + a.Col3 + ',', n.Number + 1, CHARINDEX(',', ',' + a.Col3 + ',', n.Number + 1) - n.Number - 1) AS [Value]
FROM @Sample AS a
INNER JOIN master..spt_values AS n ON SUBSTRING(',' + a.Col3 + ',', n.Number, 1) = ','
WHERE n.Type = 'p'
AND n.Number > 0
AND n.Number < LEN(',' + a.Col3 + ',')
Legacy Comments
Mladen
2007-10-15 |
re: Cross apply in SQL Server 2000 couldn't resist huh :)) kick it!! |
Jeff
2007-10-17 |
re: Cross apply in SQL Server 2000 I don't get it. That's just a JOIN. You should title the post "parsing CSV's set-based" or something like that, but it has nothing to do with CROSS APPLY. |
Peter Larsson
2007-10-18 |
re: Simulating cross apply with CSV-records in SQL Server 2000 Noted. And title is changed. |
Madhivanan
2007-10-18 |
re: Simulating cross apply with CSV-records in SQL Server 2000 Do you also mean that your approach is alternate of this? select t1.col1,t2.number from @sample t1 cross join ( select number from master..spt_values where Type = 'p' AND Number > 0 ) t2 where ','+cast(t1.col3 as varchar(2000))+',' like '%,'+cast(t2.number as varchar(10))+',%' |
Madhivanan
2007-10-18 |
re: Simulating cross apply with CSV-records in SQL Server 2000 Well. Ignore my comment. It wont work for all set of data |
sdfs
2009-01-27 |
re: Simulating cross apply with CSV-records in SQL Server 2000 useless |
xman
2009-11-25 |
re: Simulating cross apply with CSV-records in SQL Server 2000 Awesome..Brilliant |