[英]Show all columns when using pivot
我正在建立一个动态表(表头和表单元格),这是我的表
select rrc.Text , rch.Name
from RateColumnHeaders rch inner join
RateRowColumn rrc on rch.RateColumnHeadersId=rrc.RateColumnHeadersId
Text Name
------------------------
test Account Type
test2 Account Type
test3 Account Type
test4 Account Type
lorem1 Program
lorem2 Program
lorem3 Program
. .
. .
. .
在使用数据透视方法后,我得到了结果,但是在此同时,我需要显示所有列,不仅限于max(text),我如何才能实现这一点?
对我来说,我想展示这样的结果
Account Type | Program |.....
test | lorem1
test2 | lorem2
test3 | lorem3
。 。 。 这是我的枢纽查询
select * from (
select rrc.Disclaimer,rch.Name,rrc.Text
from RateRowColumn rrc
inner join RateColumnHeaders rch
on rrc.RateColumnHeadersId=rch.RateColumnHeadersId
) s pivot ( max(text) for name in ( [Account Type],[Program]) ) pvt
您不需要枢轴(我不认为)。 我认为您只想将每个组中的值作为列表列出。
您可以使用条件聚合和row_number()
:
select max(case when name = 'Account Type' then text end) as account_type,
max(case when name = 'Program' then text end) as program,
. . .
from (select rrc.Text, rch.Name,
row_number() over (partition by rch.Name order by rrc.Text) as seqnum
select rrc.Text, rch.Name
from RateColumnHeaders rch inner join
RateRowColumn rrc
on rch.RateColumnHeadersId = rrc.RateColumnHeadersId
) rrc
group by seqnum;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.