您的位置:首页 > 数据库

用SQL实现结果集的各种转换----结果集转成一列

2010-10-29 14:01 197 查看
最近看了一本关于SQL的书,书名为<<SQL Cook Book 中文版>>,看完后感觉受益很大,先将一些自我感觉用处比较大的知识点介绍如下。也给自己做点笔记。
一、简单的行转列,数据库中有如下图1所示表CityTable



图1
现在要将如图2所示的数据格式转换为如图3所示的数据格式






图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



图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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐