SQL Server:导入 Excel 并在表中放置列名和值

Posted

技术标签:

【中文标题】SQL Server:导入 Excel 并在表中放置列名和值【英文标题】:SQL Server : import Excel and place column name and the value in table 【发布时间】:2022-01-04 12:23:26 【问题描述】:

我有一个 Excel 文件需要导入 SQL Server。

Excel表格:

Product 202147 202148 202149
Prod-A 15 10 11
Prod-B 7 18 16

这需要读入一个SQL Server表MyData

YearWeek Product Value
202147 Prod-A 15
202147 Prod-B 7
202148 Prod-A 10
202148 Prod-B 18
202149 Prod-A 11
202149 Prod-B 16

如何在 SSIS 导入中执行此操作?

【问题讨论】:

您是否尝试将其读入临时表,然后在其上使用UNPIVOT? 如果您不知道列名,这将对您有所帮助:***.com/questions/47693919/… 【参考方案1】:

您不能直接在 SSIS 导入时执行此操作。另一方面,您可以在表中导入您的 excel,然后运行以下 sql 查询来实现您的目标:

select yearWeek, product, value
from myData
unpivot (value for yearWeek in ([202147], [202148], [202149])) up
order by 1,2

-- Result
/*
yearWeek    product value
202147      Prod-A  15
202147      Prod-B  7
202148      Prod-A  10
202148      Prod-B  18
202149      Prod-A  11
202149      Prod-B  16
*/

【讨论】:

如果你不硬编码它会变得更加困难

以上是关于SQL Server:导入 Excel 并在表中放置列名和值的主要内容,如果未能解决你的问题,请参考以下文章

(php)import .sql 并在表存在时添加列或创建新表

sql 将Excel文件导入为SQL Server表

SQL Server2014 任务导入数据导入Excel表操作无法完成

Excel中如何导入SQL Server里的数据

text 导入excel到sql server

Excel 2013 不会导入 SQL Server 2012