【发布时间】:2019-08-10 02:59:07
【问题描述】:
我已将 CSV 数据存储在 SQL 中的字符串变量中:
@csvContent =
'date;id;name;position;street;city
19.03.2019 10:06:00;1;Max;President;Langestr. 35;Berlin
19.04.2019 12:36:00;2;Bernd;Vice President;Haupstr. 40;Münster
21.06.2019 14:30:00;3;Franziska;financial;Hofstr. 19;Frankfurt'
我想做的是将它转换为#table,所以它看起来像
SELECT * FROM #table
date id name position street city
---------------------------------------------------------------------
19.03.2019 10:06:00 1 Max President Langestr. 35 Berlin
19.04.2019 12:36:00 2 Bernd Vice President Haupstr. 40 Münster
21.06.2019 14:30:00 3 Franzi financial Hofstr. 19 Frankfurt
标题不固定,因此 CSV 可能有或多或少具有不同标题名称的列。
我用split_string() 和pivot 尝试过,但没有找到解决方案。
【问题讨论】:
-
请标记您正在使用的 RDBMS。 SQL Server、Oracle、...?
-
对不起,SQL Server 2017
-
1.通过说“标题不固定”,您的意思是需要动态创建表吗? 2. 字符串变量是从哪里来的?——也就是说,是否存在一个潜在的问题,比如如何将 CSV 文件加载到表中?
-
否,值来自使用字符串 (CSV) 的存储过程调用,无法进行 BULK INSERT。是的,表格必须是动态的,CSV 中可能有更多或更少的列
标签: sql string csv variables sql-server-2017