我们需要转置查询结果。查询结果如下所示。
Accnt Country Weight
Acct1 US 55
Acct1 GB 45
Acct2 GB 35
Acct2 US 65
输出需要转换如下。
Acct1 Acct2
US 55 65
GB 45 35
我绑定了declare block,但是这个查询将在Dot net框架中使用,他们无法使用declare block.So请求专家让我知道在单个查询中执行此操作的可能方法,包括初始和转置。将是动态的。
答案 0 :(得分:1)
您可以使用PIVOT
select *
from (select Accnt,country,weight from test)
pivot (max(weight) for Accnt IN ('Acct1','Acct2'));
COUNTRY 'Acct1' 'Acct2'
US 55 65
GB 45 35
答案 1 :(得分:1)
PIVOT是你需要的,但也有另一种选择。
select Country,
max(case when Accnt = 'Acct1' then Weight end) Acct1,
max(case when Accnt = 'Acct2' then Weight end) Acct2
from test
group by Country;