博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL2000 和 SQL2005下行列转换示例
阅读量:6477 次
发布时间:2019-06-23

本文共 4500 字,大约阅读时间需要 15 分钟。

SQL2000 和 SQL2005下行列转换示例 
 
/*
--创建 学生成绩表
 
CREATE TABLE [StuSources] (
 [StuID] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [StuName] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [KeCheng] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [ChengJi] [float] NOT NULL
) ON [PRIMARY]
 
*/
 
/*
--填充 部分数据
 
INSERT INTO StuSources
SELECT '001','张三','语文',81
UNION SELECT  '001','张三','数学',71
UNION SELECT  '001','张三','历史',71
UNION SELECT  '002','李四','语文',82
UNION SELECT  '002','李四','数学',72
UNION SELECT  '002','李四','历史',72
 
*/
 
/*
-- 一般的直接查询
 
SELECT * FROM StuSources
 
-- 结果
StuID  StuName  KeCheng  ChengJi
001        张三       历史       71.0
001        张三       数学       71.0
001        张三       语文       81.0
002        李四       历史       72.0
002        李四       数学       72.0
002        李四       语文       82.0
 
*/
 
/*
-- Sql 2000 下 行列转换
 
SELECT StuName,
'语文' = Sum(Case KeCheng WHEN '语文' THEN ChengJi ELSE 0 END ) ,
'数学' = Sum(Case KeCheng WHEN '数学' THEN ChengJi ELSE 0 END ),
'历史' = Sum(Case KeCheng WHEN '历史' THEN ChengJi ELSE 0 END )
FROM StuSources
GROUP BY StuName
 
-- 结果
StuName  语文 数学 历史
李四       82.0 72.0 72.0
张三       81.0 71.0 71.0
 
*/
 
/*
-- Sql 2005 下 PIVOT 
 
SELECT StuName,[语文] AS '语文',
[数学] AS '数学',[历史] AS '历史'
FROM StuSources s
PIVOT (SUM (ChengJi) FOR KeCheng IN ([语文],[数学],[历史]) )AS pvt
 
*/
 
 
 
 
版权说明

  如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。

  作      者:温景良
  文章出处:  或 

分类:
+加关注
0
0
上一篇:
下一篇:
posted @ 2009-04-28 23:52 Views( 122) Comments( 1)
  
1517316 2009/5/2 13:48:15
2009-05-02 13:48 |
不错的文章,thanks,收藏
http://pic.cnblogs.com/face/u21159.png
最新IT新闻:
·
·
·
·
·
»
最新知识库文章:
·
·
·
·
·
»

公告

SQL2000 和 SQL2005下行列转换示例 
 
/*
--创建 学生成绩表
 
CREATE TABLE [StuSources] (
 [StuID] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [StuName] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [KeCheng] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [ChengJi] [float] NOT NULL
) ON [PRIMARY]
 
*/
 
/*
--填充 部分数据
 
INSERT INTO StuSources
SELECT '001','张三','语文',81
UNION SELECT  '001','张三','数学',71
UNION SELECT  '001','张三','历史',71
UNION SELECT  '002','李四','语文',82
UNION SELECT  '002','李四','数学',72
UNION SELECT  '002','李四','历史',72
 
*/
 
/*
-- 一般的直接查询
 
SELECT * FROM StuSources
 
-- 结果
StuID  StuName  KeCheng  ChengJi
001        张三       历史       71.0
001        张三       数学       71.0
001        张三       语文       81.0
002        李四       历史       72.0
002        李四       数学       72.0
002        李四       语文       82.0
 
*/
 
/*
-- Sql 2000 下 行列转换
 
SELECT StuName,
'语文' = Sum(Case KeCheng WHEN '语文' THEN ChengJi ELSE 0 END ) ,
'数学' = Sum(Case KeCheng WHEN '数学' THEN ChengJi ELSE 0 END ),
'历史' = Sum(Case KeCheng WHEN '历史' THEN ChengJi ELSE 0 END )
FROM StuSources
GROUP BY StuName
 
-- 结果
StuName  语文 数学 历史
李四       82.0 72.0 72.0
张三       81.0 71.0 71.0
 
*/
 
/*
-- Sql 2005 下 PIVOT 
 
SELECT StuName,[语文] AS '语文',
[数学] AS '数学',[历史] AS '历史'
FROM StuSources s
PIVOT (SUM (ChengJi) FOR KeCheng IN ([语文],[数学],[历史]) )AS pvt
 
*/
 
 
 
 
版权说明

  如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。

  作      者:温景良
  文章出处:  或 

分类:
好文要顶 关注我 收藏该文
+加关注
0
0
上一篇:
下一篇:
posted @ 2009-04-28 23:52 Views( 122) Comments( 1)
  
1517316 2009/5/2 13:48:15
2009-05-02 13:48 |
不错的文章,thanks,收藏
http://pic.cnblogs.com/face/u21159.png
刷新评论
最新IT新闻:
·
·
·
·
·
»
最新知识库文章:
·
·
·
·
·
»

公告

SQL2000 和 SQL2005下行列转换示例 
 
/*
--创建 学生成绩表
 
CREATE TABLE [StuSources] (
 [StuID] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [StuName] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [KeCheng] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [ChengJi] [float] NOT NULL
) ON [PRIMARY]
 
*/
 
/*
--填充 部分数据
 
INSERT INTO StuSources
SELECT '001','张三','语文',81
UNION SELECT  '001','张三','数学',71
UNION SELECT  '001','张三','历史',71
UNION SELECT  '002','李四','语文',82
UNION SELECT  '002','李四','数学',72
UNION SELECT  '002','李四','历史',72
 
*/
 
/*
-- 一般的直接查询
 
SELECT * FROM StuSources
 
-- 结果
StuID  StuName  KeCheng  ChengJi
001        张三       历史       71.0
001        张三       数学       71.0
001        张三       语文       81.0
002        李四       历史       72.0
002        李四       数学       72.0
002        李四       语文       82.0
 
*/
 
/*
-- Sql 2000 下 行列转换
 
SELECT StuName,
'语文' = Sum(Case KeCheng WHEN '语文' THEN ChengJi ELSE 0 END ) ,
'数学' = Sum(Case KeCheng WHEN '数学' THEN ChengJi ELSE 0 END ),
'历史' = Sum(Case KeCheng WHEN '历史' THEN ChengJi ELSE 0 END )
FROM StuSources
GROUP BY StuName
 
-- 结果
StuName  语文 数学 历史
李四       82.0 72.0 72.0
张三       81.0 71.0 71.0
 
*/
 
/*
-- Sql 2005 下 PIVOT 
 
SELECT StuName,[语文] AS '语文',
[数学] AS '数学',[历史] AS '历史'
FROM StuSources s
PIVOT (SUM (ChengJi) FOR KeCheng IN ([语文],[数学],[历史]) )AS pvt
 
*/
 
 
 
 
版权说明

  如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。

  作      者:温景良
  文章出处:  或 

分类:
好文要顶 关注我 收藏该文
+加关注
0
0
上一篇:
下一篇:
posted @ 2009-04-28 23:52 Views( 122) Comments( 1)
  
1517316 2009/5/2 13:48:15
2009-05-02 13:48 |
不错的文章,thanks,收藏
http://pic.cnblogs.com/face/u21159.png
刷新评论
最新IT新闻:
·
·
·
·
·
»
最新知识库文章:
·
·
·
·
·
»

公告

本文转自博客园博客,原文链接:,如需转载请自行联系原作者

 
 
你可能感兴趣的文章
iOS快速清除全部的消息推送
查看>>
java单例模式深度解析
查看>>
【学习笔记】阿里云Centos7.4下配置Nginx
查看>>
VuePress手把手一小時快速踩坑
查看>>
dnsmasq安装使用和体验
查看>>
学习constructor和instanceof的区别
查看>>
Vijos P1881 闪烁的星星
查看>>
ABP理论学习之领域服务
查看>>
Qt 控制watchdog app hacking
查看>>
让所有IE支持HTML5的解决方案
查看>>
RDD之五:Key-Value型Transformation算子
查看>>
percona 5.7.11root初始密码设置
查看>>
Cognitive Security的异常检测技术
查看>>
Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映
查看>>
生活杂事--度过十一中秋
查看>>
Pyrex也许是一个好东西
查看>>
Java内部类总结
查看>>
WINFORM WPF字体颜色相互转换
查看>>
能力不是仅靠原始积累(三)
查看>>
实战:使用终端服务网关访问终端服务
查看>>