[转帖]把列变成行的sql语句

原创 2006年05月30日 15:58:00

线有如下表:

  科目   分数    姓名
  语文     88      董兆
  数学    95       董兆
  英语     89      董兆

  语文     69      婵娟
  数学    95       婵娟
  英语     89      婵娟

  语文     69      李慧
  数学    95       李慧
  英语     89      李慧

一条sql语句,查询结果是

         李慧 婵娟 董兆
  语文   69    69   88
  数学   95     95  95
  英语   89    89   89
sql语句如下:

create table k(科目 varchar(50),分数 int,姓名 varchar(50))
insert k select '语文',88,'董兆'
union all select '数学',95,'董兆'
union all select '英语',89,'董兆'
union all select '语文',69,'婵娟'
union all select '数学',95,'婵娟'
union all select '英语',89,'婵娟'
union all select '语文',69,'李慧'
union all select '数学',95,'李慧'
union all select '英语',89,'李慧'

declare @s varchar(8000)
set @s='select 科目'
select @s=@s+',['+姓名+']=sum(case 姓名 when '''+姓名+''' then 分数 else 0 end)'
from k group by 姓名
exec(@s+'from k group by 科目')

SQL行转列经典例子(转载)

行转列问题总结 1、行转列 ---1、最简单的行转列 /*    问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李...
  • lxl743p
  • lxl743p
  • 2015年04月20日 09:47
  • 2552

SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)

2014-05-26 16:09 by 听风吹雨, 1031 阅读, 16 评论, 收藏, 编辑 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents)背景...
  • weizhiai12
  • weizhiai12
  • 2014年05月27日 13:21
  • 19465

sql内置函数pivot强大的行转列功能

语法: PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 ...
  • xb12369
  • xb12369
  • 2012年11月05日 17:10
  • 39114

SQL 行轉列 與 列轉行

先準備點數據: CREATE TABLE Sell ( [Year] INT, [Quarter] NVARCHAR(10), Quantity INT ) GO INSERT INTO...
  • Benjayming
  • Benjayming
  • 2013年12月08日 18:44
  • 6959

sql行转列:越简单越好

下图为需求:
  • xb12369
  • xb12369
  • 2014年04月03日 18:36
  • 5809

SQL行转列汇总--通用方法

SQL行转列汇总 PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR...
  • MrCheng6201745
  • MrCheng6201745
  • 2015年09月16日 15:30
  • 1850

sql行转列和列转行

最近建立数据立方体需要将表的数据结构进行转换,进行列转行,觉得用途还很大,所以就整理一下,当做自己的笔记拉。 1、列转行(主要) 表weatherdata结构: create table WEA...
  • jiyang_1
  • jiyang_1
  • 2017年01月15日 17:04
  • 608

sql 把列变成行显示

select max(case c.PeriodID WHEN 0 then c.gettime end) as t0, max(case c.PeriodID WHEN 0 then c.Valu...
  • huanglan513
  • huanglan513
  • 2011年07月14日 11:17
  • 1065

SQL 列转行

 *普通行列转换(爱新觉罗.毓华 2007-11-18于海南三亚)假设有张学生成绩表(tb)如下:Name Subject Result张三 语文  74张三 数学  83张三 物理  93李四 语文...
  • vipxiaotian
  • vipxiaotian
  • 2009年08月04日 22:30
  • 24779

SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)

原文地址:http://www.cnblogs.com/gaizai/p/3753296.html
  • wang4978
  • wang4978
  • 2015年07月20日 17:00
  • 1402
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[转帖]把列变成行的sql语句
举报原因:
原因补充:

(最多只允许输入30个字)