我正在尝试从Excel工作表中获取数据并使用SSIS将其插入SQL Server数据库。我有一个如下所示的Excel数据集:
ID (int) | PromotionOrNot (string) | PromotionOrRegPrice (decimal)
---------+-------------------------+------------------------------
1 | Promotion | 14.99
1 | Not | 16.99
我不确定为什么会这样出现,但我在SSIS中使用排序和脚本转换(以及其他各种方法)的最佳方法是:
ID (int) | RegPrice (decimal) | PromotionPrice (decimal)
---------+---------------------+-------------------------
1 | 0 | 14.99
1 | 16.99 | 0
显然这还不够好,需要这样的设置:
ID | RegPrice | PromotionPrice
---+----------+---------------https://stackoverflow.com/editing-help
1 | 16.99 | 14.99
任何人都可以帮我解决这个问题吗?非常感谢。如有必要,可以提供任何其他信息。
编辑:没关系,我设法使用Union All转换与另一个数据流进行排序。我不确定这是否适合其他人的问题。
编辑2:不,我只是个白痴。所有这些都将上述结果固定在联盟的其他输入的底部。
答案 0 :(得分:0)
使用Pivot
:
select ID, [Not] as RegPrice, Promotion as PromotionPrice
from @T
pivot (
avg (PromotionOrRegPrice)
for PromotionOrNot in ([Promotion],[Not])
) As PivotedData