首页 > 解决方案 > 使用 CSV 数据提取表字段

问题描述

我正在研究从表中的特定字段中提取数据的方法。该字段具有 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 列中的数据提取到另一个临时表中?理想情况下,我希望获得独特的价值,但此时我愿意在获得所有数据后清理数据。

标签: sql-server

解决方案


工作示例:

    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;

推荐阅读