如何将多行结果映射到 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
我需要将 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