当前位置:  数据库>sqlserver

SQL Server中行转列问题的解决方法

    来源: 互联网  发布时间:2014-08-29

    本文导语:  在sql数据库中,有如下的数据库表与数据:   代码示例: CREATE TABLE TEST (    SID VARCHAR(5) NOT NULL,COURSE NVARCHAR(10) NOT NULL, RESULT INT  NOT NULL ) INSERT INTO TEST VALUES('0001','语文',80) INSERT INTO TEST VALUES('0001','数学',85) INSERT INTO TEST VAL...

在sql数据库中,有如下的数据库表与数据:
 

代码示例:

CREATE TABLE TEST
(
   SID VARCHAR(5) NOT NULL,COURSE NVARCHAR(10) NOT NULL, RESULT INT  NOT NULL
)

INSERT INTO TEST VALUES('0001','语文',80)
INSERT INTO TEST VALUES('0001','数学',85)
INSERT INTO TEST VALUES('0001','英语',70)
INSERT INTO TEST VALUES('0001','政治',60)

以下是sql数据库行列转换、行转列的几中方法,大家做个参考。
解决方法1:
 

代码示例:

declare @sql varchar(8000)
set @sql='select sid'
select @sql=@sql+','+COURSE+
'=isnull
(
sum(
case course
when
'''+COURSE+'''
then
result end
)
,
0)'
from TEST order by SID

set @sql=@sql+' from TEST group by sid order by sid '
print @sql
exec(@sql)

解决方法2,行列转换语句:
 

代码示例:
select sid,语文=isnull(sum(case course when '语文' then result end),0),
数学=isnull(sum(case course when '数学' then result end),0),
英语=isnull(sum(case course when '英语' then result end),0)
from TEST
group by sid
order by sid:

    
 
 

您可能感兴趣的文章:

  • 安装SQL2008时提示删除SQL2005Express工具的解决方法
  • SQL Server"错误 21002: [SQL-DMO]用户 * 已经存在问题解决
  • (X86/X64)安装sql server 2005 过程中提示“无法启动sql server的 启动”的解决方法
  • sql无效字符引起的执行sql语句报错的解决方法
  • 安装sql server 2008 management提示已安装 SQL Server 2005 Express的解决方法
  • sql server 代理(已禁用代理xp)的解决方法
  • 解决:未与信任SQL Server连接相关联的问题
  • sql无效字符 执行sql语句报错解决方案
  • MS SQL Server2014链接到MS SQL Server 2000的解决方案及问题处理
  • Sql Server忘记密码的解决办法
  • SQL Server代理服务无法启动的解决方法
  • Oracle Sql语句长度限制问题及解决
  • sql 单引号查询异常的解决方法
  • sql server表死锁查不出数据的解决方法
  • Sql2000与Sql2005共存安装的解决方法
  • Microsoft SQL Server 2005 错误 29503 的解决方法
  • sa用户无法登录sql server 2005的解决方法
  • SQL Server 2005 还原数据库错误解决方法
  • sql server 复制路径出问题的解决方法
  • sql server2012附加数据库问题解决方法
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • C#使用带like的sql语句时防sql注入的方法
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL Server降权运行 SQL Server 2000以GUESTS权限运行设置方法
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • sql数据库多用户模式修改方法
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • C#代码验证sql语句是否正确(只验证不执行sql)的方法
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL查找某一条记录的方法
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • SQL Server 2008如何进行数据库分离和附加详细介绍
  • 微软网站下载的Ms SQL Server2000 JDBC Driver,必须用英文版的SQL server2000吗?
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • SQL Server 2008 事件探查器(SQL SERVER Profiler) 列的说明
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • sql server不存在 sql server拒绝访问第1/3页
  • SQL Server误区30日谈 第5天 AWE在64位SQL SERVER中必须开启
  • 一定得帮我看看sql server2000通过sql server2000jdbc driver的代码
  • SQL Server统计SQL语句执行时间的脚本
  • SQL Server误区30日谈 第21天 数据损坏可以通过重启SQL Server来修复
  • SQL Server误区30日谈 第3天 即时文件初始化特性可以在SQL Server中开启和关闭
  • 创建 sql server 链接服务器的sql代码
  • jsp jdbc为什麽不能把数据insert到sql server 中,也不能从sql server中提取数据?!
  • 如何处理此错误:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]没有执行可选特性
  • sql server 2005 三个常用的小sql
  • SQL Server 中查看SQL句子执行所用的时间
  • 推荐SQL Server 重新恢复自动编号列的序号的sql代码
  • SQL Server口令 sql server安全性第1/2页
  • SQL Server 压缩日志与减少SQL Server 文件大小的方法
  • SQL Server数据库的修复SQL语句
  • sql server 删除表1某些数据的同时自动删除表2的相关数据的sql代码
  • java命名空间javax.sql.rowset.spi类syncprovider的类成员方法: getrowsetwriter定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口sqlinput的类成员方法: readblob定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口sqlinput的类成员方法: readarray定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口sqlinput的类成员方法: readsqlxml定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client
  • java命名空间java.sql接口sqlinput的类成员方法: readrowid定义及介绍
  • sql2005 大数据量检索分页的sql代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3