`

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

阅读更多
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)

解决方案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:
分享到:
评论

相关推荐

    SQL Server中行转列问题的终极解决

    在SQL Server中,实现行转列有多种方法,如PIVOT操作、动态SQL以及使用CASE语句。其中,CASE语句是一种灵活且通用的方法,适用于那些不支持PIVOT或需要动态生成列的场景。CASE语句允许我们在查询中根据条件创建新的...

    SQL Server 2005的各种限制,table可容纳列数

    在本文中,我们将详细介绍 SQL Server 2005 的各种限制,这些限制涵盖了数据库引擎对象、数据表、索引、列、行、字符串、连接、锁、存储过程、触发器、用户定义函数、分区表、索引、统计信息等方面。 数据库引擎...

    SQL Server.rar

    5. 分析与报表服务:SQL Server Reporting Services (SSRS) 提供了企业级的报表解决方案,可创建交互式报表并进行分发。而SQL Server Analysis Services (SSAS) 则用于构建多维数据模型,支持OLAP(在线分析处理)和...

    SQL 通过行动态生成列

    "SQL 通过行动态生成列"这个主题,就是探讨如何在SQL中实现这种转换,以解决报表中行折列的问题。 在传统的SQL查询中,每一行通常对应一个记录,而列则代表记录的属性。然而,在某些场景下,如报表展示,我们可能...

    SQL Server 2005高级.ppt

    SQL Server 2005 Reporting Services (SSRS) 是一个服务器端报表解决方案,用于创建、管理和分发包含多种数据源的报表。与水晶报表相比,SSRS提供了更丰富的功能和更灵活的部署选项。用户可以通过Web接口查看和管理...

    SQL Server 2008 INSERT 语句中行值表达式的数目超出了 1000 行值的最大允许值 的解决方法

    最近在往SQL Server 2008数据库里插入数据时,有个超过1000条记录集,需要手动插入到一个表里,数据库名为MF,表名为test。 insert into test(name) values (1),(2),(3),(4),(5),(6),…(1001) –这里是1001条...

    SQL Server中查询结果超出了查询时间范围解决方法

    本文将深入探讨这个问题,并提供相应的解决方法。 首先,我们注意到描述中提到的例子,一个查询语句试图获取`ModifiedDate`在2008年11月26日全天的记录,但意外地包含了2008年11月27日的记录。问题出在datetime数据...

    SQLServer 2008中SQL增强之三 Merge(在一条语句中使用Insert,Update,Delete)

    SQLServer 2008中SQL增强之三 Merge(在一条语句中使用Insert,Update,Delete) SQL Server 2008中提供了一个增强的SQL命令Merge,用法参看MSDN:http://msdn.microsoft.com/zh-cn/library/bb510625.aspx。Merge命令...

    SQL Server 公用表表达式(CTE)实现递归的方法

    公用表表达式(CTE,Common Table Expression)是SQL Server中的一个重要特性,它允许你在复杂的查询中定义一个临时的结果集,这个结果集只在当前查询的执行范围内有效。CTE可以用于SELECT、INSERT、UPDATE、DELETE...

    sql语句妙用,各种sql语句的详细用法与讲解

    SQL(Structured Query Language)是用于管理和处理关系...无论是在简单的数据检索还是在复杂的业务逻辑中,SQL都能提供有效的解决方案。学习和掌握SQL,对于任何涉及到数据库工作的开发者来说,都是必不可少的技能。

    SQL Server实现显示每个类别最新更新数据的方法

    这种解决方案对于处理大数据集非常有效,因为它允许我们仅检索所需的新鲜数据,而不是整个数据集,从而提高查询性能。在实际应用中,你可以根据需求调整`@ShowNums`的值,以控制显示的最新记录数量。

    修复SQL数据库MDF表出错解决速达软件不能修复和不能备份帐套(图解).doc

    此修复方法不仅适用于速达软件,对于使用SQL数据库引擎的其他应用,如用友、金蝶等,遇到类似问题也可参考。 总结来说,修复SQL数据库MDF表出错,主要涉及识别错误表、定位错误行以及在临时数据库中进行修复操作。...

    如何保证表中行的固定数量

    在数据库管理中,确保表中行的固定...总的来说,利用SQL Server的触发器可以有效地保证表中行的固定数量,但这种方法也有其局限性和潜在问题。在实际应用中,应结合业务需求和数据库的最佳实践来选择合适的实现方式。

Global site tag (gtag.js) - Google Analytics