sql-server - 使用 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 列中的数据提取到另一个临时表中?理想情况下,我希望获得独特的价值,但此时我愿意在获得所有数据后清理数据。
解决方案
工作示例:
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;
推荐阅读
- sql-server - 从 Oracle 端的 MSSQL 接收 @@IDENTITY
- javascript - 如何在单列材料表中编辑多个字段
- javascript - 如何从类实例中获取 JavaScript 类构造函数参数
- node.js - UnhandledPromiseRejectionWarning:TypeError 无法读取未定义的属性“名称”
- vesta - Cannot setup VestaCP in fresh CentOS8. Failed to synchronize cache for repo 'vesta'
- google-apps-script - 如何在谷歌工作表中创建函数睡眠(毫秒)以延迟或暂停某个范围内的公式
- django - Django unknown column error when trying to get a model objects
- java - 如果成员变量关闭,如何在不将类型从 void 更改为 boolean 的情况下显示 true?
- java - 与他人共享图像和文本应用程序
- python - 避免在子命令中转义美元符号?