重温SQL——行转列,列转行(转:http://www.cnblogs.com/kerrycode/archive/2010/07/28/1786547.html)
2010-07-28 10:45
513 查看
行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现。 用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的 SELECT...CASE 语句中所指定的语法更简单、更具可读性。下面我们通过几个简单的例子来介绍一下列转行、行转列问题。
我们首先先通过一个老生常谈的例子,学生成绩表(下面简化了些)来形象了解下行转列
代码
SELECT ProgrectName,Supplier,SupplyNum
FROM
(
SELECT ProgrectName, OverseaSupply, NativeSupply,
SouthSupply, NorthSupply
FROM ProgrectDetail
)T
UNPIVOT
(
SupplyNum FOR Supplier IN
(OverseaSupply, NativeSupply, SouthSupply, NorthSupply )
) P
我们首先先通过一个老生常谈的例子,学生成绩表(下面简化了些)来形象了解下行转列
代码
SELECT ProgrectName,Supplier,SupplyNum
FROM
(
SELECT ProgrectName, OverseaSupply, NativeSupply,
SouthSupply, NorthSupply
FROM ProgrectDetail
)T
UNPIVOT
(
SupplyNum FOR Supplier IN
(OverseaSupply, NativeSupply, SouthSupply, NorthSupply )
) P
相关文章推荐
- SQL Try Catch(转载http://www.cnblogs.com/jimmyray/archive/2011/08/02/2125069.html)
- 经典SQL语句大全:http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html
- SQL高级查询 原文转载自:http://www.cnblogs.com/hoojo/archive/2011/07/16/2108129.html
- php 程序员,转载自: http://www.cnblogs.com/chinacode/archive/2010/09/10/1823342.html
- http://www.cnblogs.com/kerryking/archive/2008/08/03/1259259.html
- 批量删除,批量插入不再烦人!(摘自:http://www.cnblogs.com/perfectdesign/archive/2008/08/11/sql-server-2008-table-valued-parameters.html)
- 使用SqlDataAdapter对象获取数据(转自:http://www.cnblogs.com/zyh-nhy/archive/2009/01/07/1371177.html)
- 使用t-sql从身份证号中提取生日(转自:http://www.cnblogs.com/yukaizhao/archive/2008/05/22/sql_getbirthday_from_id.html)
- Oracle数据库备份与恢复之二:SQL*Loader(原文http://www.cnblogs.com/sungod/archive/2011/03/13/1983091.html)
- 创建与删除SQL约束或字段约束。 -----http://www.cnblogs.com/hanguoji/archive/2006/11/17/563871.html
- SQL优化--使用分析函数(转自:http://www.cnblogs.com/zping/archive/2008/08/06/1261973.html)
- 有关T-SQL的10个好习惯 转载http://www.cnblogs.com/CareySon/archive/2012/10/11/2719598.html
- 实战 SQL Server 2008 数据库误删除数据的恢复 (转载至dudu http://www.cnblogs.com/dudu/archive/2011/10/15/sql_server_recover_deleted_records.html)
- SQL优化--使用 EXISTS 代替 IN 和 关联查询(inner join) (转载)http://www.cnblogs.com/zping/archive/2008/08/05/1260959.html
- 转自http://www.cnblogs.com/jscode/archive/2012/07/10/2583856.html
- ASP.Net 控件的遍历(转+修改http://www.cnblogs.com/kerryking/archive/2007/10/19/930120.html)
- sql把逗号分隔的字符串拆成临时表(转:http://www.cnblogs.com/eleven11/archive/2010/08/17/1800901.html)
- sql 分页(原:http://www.cnblogs.com/fly_zj/archive/2010/07/06/1772536.html)
- 在测试sql语句性能时先清空缓存【转自:http://www.cnblogs.com/yukaizhao/archive/2008/04/24/1168647.html】
- string 引用 值类型(转自:http://www.cnblogs.com/axyz/archive/2010/11/17/1880083.html)