如何解决从行创建/透视列,一旦创建透视,我想在SQL的新创建列中添加不同列的值
[不允许复制图像,因此下面的链接具有INout和Output 1的图像
输入:
ColumnA ColumnB ColumnC ColumnD
1 India DX 100
2 India AB 200
3 Aus DX 300
4 Ger BC 400
输出:
ColumnA India Aus Ger ColumnD
1 DX - - 100
2 AB - - 200
3 - DX - 300
4 - - BC 400
解决方法
您可以使用case
表达式来做到这一点:
select columna,case when columnb = 'India' then columnc else '-' end india,case when columnb = 'Aus' then columnc else '-' end aus,case when columnb = 'Ger' then columnc else '-' end ger,columnd
from mytable
您的样本数据没有显示,但您可能希望通过columna
进行汇总:
select columna,coalesce(max(case when columnb = 'India' then columnc end),'-') india,coalesce(max(case when columnb = 'Aus' then columnc end),'-') aus,coalesce(max(case when columnb = 'Ger' then columnc end),'-') ger
from mytable
group by columna
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。