教您如何实现DB2行转列
DB2行转列操作是很常见的问题,下面就教您如何实现DB2行转列操作,如果您之前遇到过DB2行转列的问题,不妨一看。
给出下面的数据:
CREATE TABLE Sales (Year INT, Quarter INT, Results INT)
YEAR QUARTER RESULTS
----------- ----------- -----------
2004 1 20
2004 2 30
2004 3 15
2004 4 10
2005 1 18
2005 2 40
2005 3 12
2005 4 27
想要的到结果:
YEAR Q1 Q2 Q3 Q4
----------- ----------- ----------- ----------- -----------
2004 20 30 15 10
2005 18 40 12 27
这个SQL就可解决这个问题:S
ELECT Year,
MAX(CASE WHEN Quarter = 1
THEN Results END) AS Q1,
MAX(CASE WHEN Quarter = 2
THEN Results END) AS Q2,
MAX(CASE WHEN Quarter = 3
THEN Results END) AS Q3,
MAX(CASE WHEN Quarter = 4
THEN Results END) AS Q4
FROM Sales
GROUP BY Year
解释一下为什么要加max的原因,因为不加max的话结果会是这样:
YEAR Q1 Q2 Q3 Q4
----------- ----------- ----------- ----------- -----------
2004 20 - - -
2004 - 30 - -
2004 - - 15 -
2004 - - - 10
2005 18 - - -
2005 - 40 - -
2005 - - 12 -
2005 - - - 27
【编辑推荐】
相关文章
- [1]SpinalHDL安装环境
- 算法学习笔记(8): 网络流
- Less常用功能使用
- CF构造题1600-1800(1)
- 梯度下降算法 Gradient Descent
- [0]为什么是SpinalHDL-Spinal简介
- UML建模、设计原则
- 蓝牙模块测试那些事之从机测试
- 【架构设计】你真的理解软件设计中的SOLID原则吗?
- 常见回归和分类损失函数比较
- 【大型软件开发】浅谈大型Qt软件开发(二)面向未来开发——来自未来的技术:COM组件。我如何做到让我们的教学模块像插件一样即插即用,以及为什么这么做。
- Qt界面设计--侧边栏隐藏和滑出
- 算法学习笔记(2): 欧拉定理与逆元
- 算法学习笔记(1): 欧几里得算法及其扩展
- 快速乘总结
- 11.硬核的volatile考点分析
- 机器学习经典算法总结
- 10.关于synchronized的一切,我都写在这里了
- 初始化一个GCP项目并用gcloud访问操作
- 图解 Andrew 算法求凸包