45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网络编程 > 数据库 >

UNPIVOT用法详解

电脑软硬件应用网 45IT.COM 时间:2007-11-19 11:07 作者:风云
  联机帮助中的解释:

  指定输入表从 column_list 中的多个列缩减为名为 pivot_column 的单个列。

  此处也用一个我遇到的例子来说明:

  今天得到一个EXECL文件,格式为:时间,全国,北京,天津......等35个城市列名。下面每行是每个月该城市对应的数据值。

  如下图所示:


  现在要求我转换为时间,地区,数值,这样的格式。想到2005的新功能pivot和unpivot是个不错的选择。但以前从来没用过。第一次用走了此弯路。写出分析,希望对大家有所帮助:

  代码
select [时间],[地区],[数值] from asdfg
unpivot([数值] for [地区] in([全国],[北京],[天津],[石家庄],[太原],[呼和浩特],[沈阳],[大连],[长春],[哈尔滨],[上海],[南京],[杭州],[宁波],[合肥],[福州],[厦门],[南昌],[济南],[青岛],[郑州],[武汉],[长沙],[广州],[深圳],[南宁],[海口],[重庆],[成都],[贵阳],[昆明],[拉萨],[西安],[兰州],[西宁],[银川],[乌鲁木齐])) as U

  说明:

  这里的地区和数值这两个名字可以随便指定。地区 in后面的括号里是要转置的列名。地区是查询结果中所有转换成行的列的列名。数值这个和原表基本上没有什么关系,只是一个列名来存放地区对应的数值。只要保证select后面和unpivot后面一样就OK了。

  结果如下图所示:

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识