SQL2000 和 SQL2005下行列转换示例

简介:
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
 
*/
 
 
 
 
版权说明

  如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。
  作      者:温景良
  文章出处:http://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/

分类: SQL Server
0
0
« 上一篇: oracle参数列表
» 下一篇: 自动生成对一个数据表的插入和更新的存储过程
posted @ 2009-04-28 23:52 温景良(Jason) Views( 122) Comments( 1) Edit 收藏

  
#1楼 2009-05-02 13:48 | Steven Xiao  
不错的文章,thanks,收藏

相关文章
|
6月前
|
SQL 数据库
SQL 中的 MIN 和 MAX 以及常见函数详解及示例演示
SQL中的MIN()函数和MAX()函数用于查找所选列的最小值和最大值,分别。以下是它们的用法和示例:
247 0
|
6月前
|
SQL Oracle 关系型数据库
SQL 中的运算符与别名:使用示例和语法详解
IN运算符允许您在WHERE子句中指定多个值,它是多个OR条件的简写
245 0
|
6月前
|
SQL Oracle 关系型数据库
|
26天前
|
存储 SQL 数据库
SQL Server 临时存储过程及示例
SQL Server 临时存储过程及示例
49 3
|
3月前
|
SQL 安全 API
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
83 4
|
4月前
|
SQL Java 数据库连接
SQL游标的基本使用方法与示例
SQL游标的基本使用方法与示例
|
5月前
|
SQL Java 数据库连接
SQL游标的基本使用方法与示例
SQL游标的基本使用方法与示例
|
5月前
|
SQL Oracle 关系型数据库
SQL中NEXTVAL获取序列值的应用场景与示例
SQL中NEXTVAL获取序列值的应用场景与示例
|
6月前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
674 0
|
6月前
|
SQL 关系型数据库 MySQL
MySQL日期函数的SQL代码示例和使用场景
MySQL日期函数的SQL代码示例和使用场景
57 0

热门文章

最新文章