[转帖]把列变成行的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 Server 动态行转列(参数化表名、分组列、行转列字段、字段值)

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

SQL 列转行

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

如何把sqlserver中的列转换成行,行转换成列,显示。

create database arron go use arron go -- createTable init Data create table students ( ...

MySQL的行转列、列转行、连接字符串 concat、concat_ws、group_concat函数用法

MySQL中concat函数 使用方法: CONCAT(str1,str2,…)   返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 注意: 如...

Sql Server 关于整表插入另一个表部分列的语法以及select 语句直接插入临时表的语法 (转帖)

语法是这样的 :1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select*into b from a where11法二:selecttop0*into b f...

sql查询语句去除重复列(行)

1.  select * from table1 as a where not exists(select 1 from table1 where logID=a.LogID an...

SQL查询语句行转列横向显示

在SQL查询语句行转列横向显示中access中没有CASE,要用IIF代替 select  iif(sex= '1 ', '男 ', '女 ')  from  tablename select ...

数据库行转列的sql语句

问题描述假设有张学生成绩表(CJ)如下Name Subject Result张三 语文 80张三 数学 90张三 物理 85李四 语文 85李四 数学 92李四 物理 82现在 想写 sql 语句  ...

SqlServer 数据库行转列的sql语句

问题描述假设有张学生成绩表(CJ)如下Name Subject Result张三 语文 80张三 数学 90张三 物理 85李四 语文 85李四 数学 92李四 物理 82现在 想写 sql 语句  ...

oracle中sql语句的优化(转帖)

oracle中sql语句的优化(转帖)   一、执行顺序及优化细则 1.表名顺序优化  (1) 基础表放下面,当两表进行关联时数据量少的表的表名放右边 表或视图:  Student_i...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[转帖]把列变成行的sql语句
举报原因:
原因补充:

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