使用CSV数据提取表字段

时间:2020-02-18 23:05:01

标签: sql-server

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

1 个答案:

答案 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;