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设计的示例数据库,其中包含了Northwind数据库的经典实例。这个数据库被广泛用于教学和自我提升,因为它提供了丰富的数据集和业务场景,帮助用户理解如何在实际环境中...
SQL Server 2000 Sample Databases是微软提供的一个用于学习和测试SQL Server 2000数据库管理系统的重要资源。这个压缩包包含了多个示例数据库,这些数据库设计用于展示SQL Server的功能,帮助用户理解如何在实际...
SQL Server 2000 Sample Databases.zip 是一个包含SQL Server 2000的示例数据库的压缩包,主要用于帮助用户了解和学习SQL Server的功能和操作。在SQL Server环境中,示例数据库是非常宝贵的资源,因为它们提供了真实...
《SQL Server中的样例数据库——Pubs与Northwind》 SQL Server是Microsoft公司推出的一款强大的关系型数据库管理系统,广泛应用于企业级数据存储和管理。在SQL Server的学习和实践中,两个经典的样例数据库Pubs和...
SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它在企业级数据管理领域有着广泛的应用。本资源包含的是SQL Server 2000的两个示例数据库源码,分别是Northwind和Pubs,这两个数据库经常被用于教学、...
标题“SQL Server 2000 Sample Databases.7z”指的是一个包含了SQL Server 2000示例数据库的压缩文件。这个压缩包里包括了两个主要的数据库文件,以及相关的日志文件和安装脚本,是学习和了解SQL Server数据库管理...
SQL Server 2000 Sample Databases 是微软提供的一组示例数据库,旨在帮助用户学习和理解SQL Server 2000的特性和功能。这些数据库包含实际业务场景中的数据,便于开发者和数据库管理员在无需创建复杂数据模型的情况...
PPT部分可能涵盖了SQL Server 2000的基本概念、安装配置、数据库架构、表和索引的创建与管理、查询语言T-SQL的使用、存储过程与触发器、视图和事务处理、备份与恢复策略、安全性设置等内容。这些PPT将通过图表和...
`sp_helpdb`可以列出SQL Server中的所有数据库信息,包括名称、大小、状态等。 2. **删除表的命令**:在SQL语言中,删除表的命令是`DROP`,选项B。例如,`DROP TABLE 表名`会删除指定的表及其所有数据。 3. **主键...
这个"sqlserver2008-reportservices-sample"很可能是包含SQL Server 2008 Reporting Services的示例数据和配置文件,旨在帮助用户理解和学习如何有效地使用这一服务。 SQL Server 2008 Reporting Services的核心...
### 实现 Oracle 连接 SQL Server 的方法与步骤 在 IT 领域,数据库间的交互对于实现数据共享和业务协同至关重要。Oracle 和 SQL Server 分别作为市场上两款主流的数据库管理系统,它们之间的连接需求十分常见。...
SQL Server全文索引查询是一种在SQL Server数据库中用于高效检索大量文本数据的技术。与传统的基于B树结构的索引不同,全文索引专注于处理“包含”式查询,即查询字符串中是否包含特定的关键词,而不仅仅是以特定...
1. 加载驱动:使用Class.forName()方法加载JDBC驱动,例如`Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")`。 2. 获取连接:使用DriverManager.getConnection()方法创建数据库连接,需要提供URL、...