我正在研究从表中的特定字段提取数据的方法。该字段具有CSV数据,我想将它们全部作为单独的条目放在临时表中。例如,
Create Table #temp (CsvData Varchar(500))
Insert Into #temp Values ('1,2,3,4'), ('3,6,7,9'), ('a,b,c,d'), ('d,f,g,h')
如何将CsvData列中的数据提取到另一个临时表中?理想情况下,我希望获得唯一的值,但在这一点上,我愿意在获得所有数据后清理它们。
答案 0 :(得分:1)
工作示例:
Create Table #temp (CsvData Varchar(500));
Create Table #temp2 (OneValue Varchar(500));
Insert Into #temp Values
('1,2,3,4'), ('3,6,7,9'), ('a,b,c,d'), ('d,f,g,h');
DECLARE @s VarChar(Max) = '';
SELECT @s = @s + Replace('INSERT INTO #temp2
VALUES('''+CsvData+''')',',','''),(''') FROM #temp;
PRINT @s;
EXEC (@s);
SELECT * FROM #temp2;
DROP TABLE #temp;
DROP TABLE #temp2;