用SQL实现结果集的各种转换----结果集转成一列
2010-10-29 14:01
197 查看
最近看了一本关于SQL的书,书名为<<SQL Cook Book 中文版>>,看完后感觉受益很大,先将一些自我感觉用处比较大的知识点介绍如下。也给自己做点笔记。
一、简单的行转列,数据库中有如下图1所示表CityTable
![](http://hi.csdn.net/attachment/201010/29/0_1288330885Yl79.gif)
图1
现在要将如图2所示的数据格式转换为如图3所示的数据格式
![](http://hi.csdn.net/attachment/201010/29/0_12883310183T1P.gif)
![](http://hi.csdn.net/attachment/201010/29/0_1288331032aEx0.gif)
图2 图3
这个问题相信很多人都遇到过,首先根据Case语句可以得到如图4所示的数据格式
select
case when CityName='南平' then CityPopulation else 0 end as '南平',
case when CityName='三明' then CityPopulation else 0 end as '三明',
case when CityName='泉州' then CityPopulation else 0 end as '泉州'
from CityTable
![](http://hi.csdn.net/attachment/201010/29/0_1288331738dFfc.gif)
图4
再在每个Case中加一个聚集函数MAX()即可得到如图3所示的效果
select MAX(case when CityName='南平' then CityPopulation else 0 end)as '南平',
MAX(case when CityName='三明' then CityPopulation else 0 end)as '三明',
MAX(case when CityName='泉州' then CityPopulation else 0 end)as '泉州'
from CityTable
一、简单的行转列,数据库中有如下图1所示表CityTable
![](http://hi.csdn.net/attachment/201010/29/0_1288330885Yl79.gif)
图1
现在要将如图2所示的数据格式转换为如图3所示的数据格式
![](http://hi.csdn.net/attachment/201010/29/0_12883310183T1P.gif)
![](http://hi.csdn.net/attachment/201010/29/0_1288331032aEx0.gif)
图2 图3
这个问题相信很多人都遇到过,首先根据Case语句可以得到如图4所示的数据格式
select
case when CityName='南平' then CityPopulation else 0 end as '南平',
case when CityName='三明' then CityPopulation else 0 end as '三明',
case when CityName='泉州' then CityPopulation else 0 end as '泉州'
from CityTable
![](http://hi.csdn.net/attachment/201010/29/0_1288331738dFfc.gif)
图4
再在每个Case中加一个聚集函数MAX()即可得到如图3所示的效果
select MAX(case when CityName='南平' then CityPopulation else 0 end)as '南平',
MAX(case when CityName='三明' then CityPopulation else 0 end)as '三明',
MAX(case when CityName='泉州' then CityPopulation else 0 end)as '泉州'
from CityTable
相关文章推荐
- 用SQL实现结果集的各种转换----将结果集反向转置为一列
- 用SQL实现结果集的各种转换----结果集转成多行
- 用SQL实现结果集的各种转换----附窗口函数
- 用SQL实现结果集的各种转换----结果集转成多列
- 用SQL实现结果集的各种转换----结果集转成多列
- 自己实现一个SQL解析引擎 功能:将用户输入的SQL语句序列转换为一个可执行的操作序列,并返回查询的结果集。 SQL的解析引擎包括查询编译与查询优化和查询的运行,主要包括3个步骤: 查询分析
- PHP实现的各种进制相互转换功能小工具示例
- Json字符串转换为java对象的各种实现方法【json_lib框架、Gson、org.json】
- 数据透视表sql:用SQL行列转换实现数据透视的一些思考
- java中util日期与sql日期互相转换 实现前端日期数据传入servlet存入数据库
- pl/sql实现金额转换为大写
- SQL各种日期转换代码大全
- 实现了各种输入法的用户词库、网络词库(细胞词库)之间的相互转换
- java实现从实体到SQL语句的转换(二)
- 【工具】 可以实现各种图片的各种转换 包括webp格式等互转 google工具
- .Net/C#/VB/T-SQL/Java 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- [MySQL] 行列转换变化各种方法实现总结(行变列报表统计、列变行数据记录统计等)
- c#实现c语言memcpy各种类型转换
- Java实现十进制到各种进制的转换
- 各种SQL在Pig中实现