`
xiao_yi
  • 浏览: 410562 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Sql server行转列处理Sample

阅读更多

 Sql server行转列处理Sample

主要应用case语句来解决行转列的问题

行转列问题主要分为两类

1)简单的行转列问题:

示例表:

id  sid           course  result

1   2005001 语文     80.0
2   2005001 数学     90.0
3   2005001 英语     80.0
4   2005002 语文     56.0
5   2005002 数学     69.0
6   2005002 英语     89.0

执行

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 result
   group by sid
   order by sid

 

得出结果

sid           语文 数学 英语

2005001 80.0  90.0  80.0
2005002 56.0  69.0  89.0

 

2)较为复杂的行转列

表1:course

id name

1 语文
2 数学
3 英语


表2:result

id sid          course  result

1 2005001 语文      80.0
2 2005001 数学      90.0
3 2005001 英语      80.0
4 2005002 语文      56.0
5 2005002 数学      69.0
6 2005002 英语      89.0

 

declare @sql varchar(8000)
set @sql='select sid'
select @sql=@sql+','+course.name+'=isnull(sum(case course when '''+course.name+''' then result end),0)'
 from course order by id
set @sql=@sql+' from result group by sid order by sid'
print @sql
exec(@sql)

 

得出结果

sid           语文 数学 英语

2005001 80.0  90.0  80.0
2005002 56.0  69.0  89.0
 
 

分享到:
评论

相关推荐

    SQL Server 2000 Sample

    SQL Server 2000 Sample是一个专为学习和实践SQL设计的示例数据库,其中包含了Northwind数据库的经典实例。这个数据库被广泛用于教学和自我提升,因为它提供了丰富的数据集和业务场景,帮助用户理解如何在实际环境中...

    SQL Server 2000 Sample Databases

    SQL Server 2000 Sample Databases是微软提供的一个用于学习和测试SQL Server 2000数据库管理系统的重要资源。这个压缩包包含了多个示例数据库,这些数据库设计用于展示SQL Server的功能,帮助用户理解如何在实际...

    SQL Server 2000 Sample Databases.zip

    SQL Server 2000 Sample Databases.zip 是一个包含SQL Server 2000的示例数据库的压缩包,主要用于帮助用户了解和学习SQL Server的功能和操作。在SQL Server环境中,示例数据库是非常宝贵的资源,因为它们提供了真实...

    SQL Server Sample Database

    《SQL Server中的样例数据库——Pubs与Northwind》 SQL Server是Microsoft公司推出的一款强大的关系型数据库管理系统,广泛应用于企业级数据存储和管理。在SQL Server的学习和实践中,两个经典的样例数据库Pubs和...

    sqlserver2000 sample databases

    SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它在企业级数据管理领域有着广泛的应用。本资源包含的是SQL Server 2000的两个示例数据库源码,分别是Northwind和Pubs,这两个数据库经常被用于教学、...

    SQL Server 2000 Sample Databases.7z

    标题“SQL Server 2000 Sample Databases.7z”指的是一个包含了SQL Server 2000示例数据库的压缩文件。这个压缩包里包括了两个主要的数据库文件,以及相关的日志文件和安装脚本,是学习和了解SQL Server数据库管理...

    SQL Server 2000 Sample Databases.rar

    SQL Server 2000 Sample Databases 是微软提供的一组示例数据库,旨在帮助用户学习和理解SQL Server 2000的特性和功能。这些数据库包含实际业务场景中的数据,便于开发者和数据库管理员在无需创建复杂数据模型的情况...

    SQL_Server_2000_study.rar_SQL Server2000 ppt_sql sample code

    PPT部分可能涵盖了SQL Server 2000的基本概念、安装配置、数据库架构、表和索引的创建与管理、查询语言T-SQL的使用、存储过程与触发器、视图和事务处理、备份与恢复策略、安全性设置等内容。这些PPT将通过图表和...

    SQLServer2005考试题及答案

    `sp_helpdb`可以列出SQL Server中的所有数据库信息,包括名称、大小、状态等。 2. **删除表的命令**:在SQL语言中,删除表的命令是`DROP`,选项B。例如,`DROP TABLE 表名`会删除指定的表及其所有数据。 3. **主键...

    sqlserver2008-reportservices-sample

    这个"sqlserver2008-reportservices-sample"很可能是包含SQL Server 2008 Reporting Services的示例数据和配置文件,旨在帮助用户理解和学习如何有效地使用这一服务。 SQL Server 2008 Reporting Services的核心...

    实现 Oracle 连接 SQL Server

    ### 实现 Oracle 连接 SQL Server 的方法与步骤 在 IT 领域,数据库间的交互对于实现数据共享和业务协同至关重要。Oracle 和 SQL Server 分别作为市场上两款主流的数据库管理系统,它们之间的连接需求十分常见。...

    SQL Server 全文索引查询

    SQL Server全文索引查询是一种在SQL Server数据库中用于高效检索大量文本数据的技术。与传统的基于B树结构的索引不同,全文索引专注于处理“包含”式查询,即查询字符串中是否包含特定的关键词,而不仅仅是以特定...

    JDBC连接Sql Server 2005总结

    1. 加载驱动:使用Class.forName()方法加载JDBC驱动,例如`Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")`。 2. 获取连接:使用DriverManager.getConnection()方法创建数据库连接,需要提供URL、...

Global site tag (gtag.js) - Google Analytics