如何将多行结果映射到 SSIS 执行 SQL 任务中的不同变量?

How to map multiple row results to different variables in SSIS Execute SQL Task?

我需要将 1 列从 SQL 查询的多个结果行映射到同一个 SSIS 包中的不同变量。

例如, 我查询的输出是:

Category, Count  
A, 16  
B, 23  
C, 41  
D, 72  
E, 32

我希望将 Count 的值分配给包中的 5 个不同变量。

VariableA = 16
VariableB = 23
and so on.

我遇到了一个对象的多个结果集,然后使用 ForEach 循环容器从中读取。但是,这会将不同的结果存储在同一个变量中。 我想将这些变量用作数据流任务中多行采样转换的数字,因此我需要将它们作为单独的变量。 有没有办法解决这个问题并在 SSIS 中获得上述结果?

就像我上面评论的那样。您可以旋转查询结果...

;with YourQuery as
( 
select *
from (values('A',16),('B',23),('C',41),('D',72),('E',32)) as a(Cat,Ct)
)

select A=Max(case when cat='A' then Ct else 0 end)
    ,B=Max(case when cat='B' then Ct else 0 end)
    ,C=Max(case when cat='C' then Ct else 0 end)
    ,D=Max(case when cat='D' then Ct else 0 end)
    ,E=Max(case when cat='E' then Ct else 0 end)
from YourQuery

结果:

A   B   C   D   E
16  23  41  72  32