• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > sqlserver下将数据库记录的列记录转换成行记录的方法

sqlserver下将数据库记录的列记录转换成行记录的方法

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了列记录,行记录等相关知识,希望本文的分享对您有所帮助

sqlserver下将数据库记录的列记录转换成行记录的方法分享,需要的朋友可以参考下。

假设有张学生成绩表(tb)如下:
Name Subject Result
张三 语文  74
张三 数学  83
张三 物理  93
李四 语文  74
李四 数学  84
李四 物理  94
想变成

姓名 语文 数学 物理
---------- ----------- ----------- -----------
李四 74 84 94
张三 74 83 93
SQL 语句如下:
代码如下:
create table tb
(
Name varchar(10) ,
Subject varchar(10) ,
Result int
)
insert into tb(Name , Subject , Result) values('张三' , '语文' , 74)
insert into tb(Name , Subject , Result) values('张三' , '数学' , 83)
insert into tb(Name , Subject , Result) values('张三' , '物理' , 93)
insert into tb(Name , Subject , Result) values('李四' , '语文' , 74)
insert into tb(Name , Subject , Result) values('李四' , '数学' , 84)
insert into tb(Name , Subject , Result) values('李四' , '物理' , 94)
go

--静态SQL,指subject只有语文、数学、物理这三门课程。
select name 姓名,
max(case Subject when '语文' then result else 0 end) 语文,
max(case Subject when '数学' then result else 0 end) 数学,
max(case Subject when '物理' then result else 0 end) 物理
from tb
group by name

--动态SQL,指subject不止语文、数学、物理这三门课程。

declare @sql varchar(8000)
set @sql = 'select Name as ' + '姓名'
select @sql = @sql + ' , max(case Subject when ''' + Subject + ''' then Result else 0 end) [' + Subject + ']'
from (select distinct Subject from tb) as a
set @sql = @sql + ' from tb group by name'
exec(@sql)
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • sqlserver下将数据库记录的列记录转换成行记录的方法

相关文章

  • 2018-12-05Transfer在MySQL双主同步架构中的应用
  • 2017-05-11windows7下启动mysql服务出现服务名无效的原因及解决方法
  • 2018-12-05SQL2008中SQL应用之- 死锁(Deadlocking)
  • 2018-12-05mysql中用正则表达式进行搜索匹配教程(三)
  • 2018-12-05在SQLServer上查看SQL语句的执行时间的方法
  • 2018-12-05删除表数据零基础入门教程汇总
  • 2017-05-11mysql启用skip-name-resolve模式时出现Warning的处理办法
  • 2017-05-11MySQL中的CONCAT函数使用教程
  • 2017-05-11mysql #1062 –Duplicate entry '1' for key 'PRIMARY'
  • 2018-12-05MySQL UPDATE更新语句精解第1/4页

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql中is null语句的用法分享
    • 怎样将MySQL中两千万数据进行优化与迁移
    • MySQL查询时间日期的方法与函数
    • 如何使用游标?MySQL游标简介
    • mysql实现事务的提交和回滚实例
    • 优化定位较低sql的两种方式详解
    • 一步一步教你创建SQL 2005计划任务应用图解教程
    • mysql数据库优化总结(心得)
    • 有关头文件的文章推荐10篇
    • debian6配置mysql允许远程连接的方法(图)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有