寻求有关使用 SSIS 或替代工具在 SQL Server 中进行高效数据逆透视的建议

问题描述 投票:0回答:1

我目前正在使用 SQL Server 数据库,并面临着数据转换的挑战。数据结构要求我在将其移动到暂存区域之前先取消旋转多个列。

我尝试使用 SSIS 来完成此任务。虽然我知道 SSIS 可以处理逆透视,但这个过程似乎很麻烦,因为我必须手动指定每个目标列,并且涉及这么多列,手动编写所有列变得不可行。

我最初考虑使用 T-SQL 进行逆透视,但我的 SSIS 包并没有按照我预期的方式直接执行 T-SQL 脚本。

我读到可能有一种方法可以在 SSIS 中利用 C# 来更有效地处理此类转换。这是真的吗?或者,您是否会推荐任何其他工具或方法来在 SQL Server 环境中有效处理此类数据转换(可能仍在使用 SSIS)?

示例:

原始数据

猫格里 项目1 项目2
一个 两个

未透视数据-

猫格里 项目 价值
一个 项目1 拖车
一个 项目2

我不想手动编写 Unpivoted 列名称,我有超过 300 个项目。

任何类似经历的提示或例子将不胜感激。谢谢!

sql-server ssis airflow etl
1个回答
0
投票

这是一个使用一些 JSON 的示例(假设 2016 年以上)。 请注意,我们只需过滤列

LIKE 'ITEM%'

Select A.ID
      ,A.FirstName
      ,A.LastName
      ,Item = B.[key]
      ,Value = B.Value
      ,A.CategoryID
      ,A.LocationID
 From  YourTable A
 Cross Apply ( Select * 
                From  OpenJson((Select A.* For JSON Path,Without_Array_Wrapper )) 
                Where [Key] like 'Item%'
             ) B
© www.soinside.com 2019 - 2024. All rights reserved.