`

数据库行列转换

    博客分类:
  • SQL
阅读更多

 数据库中的表格:

 

 

 

 

 

 

 

要求查询出的数据:

 

 

 

 

初始化环境:

1、  建表:

create table studentResult( 
name varchar(50), 
Subject varchar(50), 
Result int 
)

 

2、  插入数据:

insert into studentResult values('张三','语文',80) ;
insert into studentResult values('张三','数学',70) ;
insert into studentResult values('张三','物理',90) ;
insert into studentResult values('李四','语文',75) ;
insert into studentResult values('李四','数学',84) ;
insert into studentResult values('李四','物理',69) ;

 

方法一:静态sql,即只有(数学、语文、物理)3个科目,没有其余科目

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 studentResult group by name;

 

方法二:科目不确定的情况下

--动态sql
--定义变量,sql语句长度
declare @sql varchar(8000)
--设值
set @sql='select name'
select @sql = @sql
+', max(case [Subject] when '''+Subject+'''then result else 0 end) ['+Subject+']'
from (select distinct Subject from studentResult) as a
set @sql=@sql+' from studentResult group by name'
--执行sql
exec(@sql);	

 

如果再插入一行

insert into studentResult values('王五','化学',60) ;

 

下面再分别执行来看看两者区别

法一:

 

 

 

 

法二:

 

 

 

 

 

 

 

  • 大小: 4.2 KB
  • 大小: 2.3 KB
  • 大小: 3 KB
  • 大小: 2.7 KB
分享到:
评论

相关推荐

    数据库行列转换算法

    【数据库行列转换算法】 在数据库处理中,行列转换是一种常见的数据操作,特别是在数据分析和报表生成时。Oracle数据库提供了多种方法来实现这种转换,本篇将详细介绍如何在Oracle中进行行列转换,包括列转行、行转...

    SQL语句行列转换(附带数据库、表、视图操作)

    SQL 语句行列转换(附带数据库、表、视图操作) SQL 语句行列转换是数据库管理系统中的一种常见操作,它可以将数据从行转换为列,或者从列转换为行。在这个过程中,需要使用数据库管理语言(Database Management ...

    mysql行列转换

    java语言 数据库 mysql数据库 sql行列转换的例子 详解

    玩转-SQL2005数据库行列转换

    在SQL Server 2005中,行列转换是数据库操作中的一个重要技巧,它涉及到数据的组织方式转换,常用于报表生成或数据分析。行转列主要适用于将多行数据转化为单行,而列转行则是将单行数据拆分为多行。在本案例中,...

    行列转换

    Oracle - 基础和管理 - CSDN社区 community_csdn_net.htm"和"oracle 如何列转行 Oracle - 基础和管理 - CSDN社区 community_csdn_net.files"暗示了这些文件可能包含有关Oracle数据库行列转换的教程或实例,可能包括...

    sql行列转换扩展

    SQL 行列转换扩展是指将数据库表中的行数据转换为列数据,或者将列数据转换为行数据的操作。这种操作在数据分析和报表生成中非常常见。在本文中,我们将介绍两种类型的行列转换扩展方法:行转列结构和行列转换...

    oracle行列转换例子

    在Oracle数据库中,行列转换是一种常见的数据操作需求,主要用于将数据从行的形式转换为列的形式,或者反之。这种转换在数据分析、报表制作等场景中尤为常见。本文将深入解析一个Oracle行列转换的例子,通过详细解释...

    浅析SQL语句行列转换的两种方法 case...when与pivot函数的应用

    在SQL查询中,有时我们需要将数据的行转换为列,或者反之,这被称为行列转换。在本篇中,我们将深入探讨两种实现SQL语句行列转换的方法:`CASE...WHEN` 语句和 `PIVOT` 函数,并通过具体的示例来说明它们的应用。 ...

    Oracle行列转换

    在处理数据时,有时我们需要将数据从行格式转换为列格式,或者反之,这一过程被称为“行列转换”。Oracle提供了多种方法来实现这样的转换,这对于数据分析、报表制作以及优化查询性能等场景非常有用。下面我们将深入...

    sql server 行列转换

    在处理数据库查询时,我们经常会遇到需要将表中的行数据转换为列数据的需求,这种操作通常被称为“行列转换”。例如,当我们需要汇总不同类别的数据并将其展示在同一行的不同列中时,就需要用到行列转换的技术。在...

    oracle行列转换总结

    在Oracle数据库中,行列转换是一项常用且强大的功能,它允许数据在不同的维度上进行转换,以便于数据分析和报告。本文将深入探讨Oracle中实现行列转换的几种方法,包括使用`UNION ALL`、`MODEL`子句以及集合类型(`...

    oracle行列转换实例

    【Oracle 行列转换实例】 在数据库管理中,有时我们需要将数据表的行与列进行转换,以便于数据分析和报表展示。Oracle 提供了一种高效的方法,即使用分析函数来实现这种行列转换。分析函数主要设计用于处理累计计算...

    MSSQL行列转换存储过程

    其中,行列转换是数据处理中常见的一种需求,尤其是在进行数据分析、报表生成等场景时。本文将深入解析MSSQL中实现行列转换的存储过程及其工作原理,帮助读者理解和掌握这一关键技术。 ### MSSQL行列转换存储过程 ...

    mysql 查询行列转换

    在实际工作中,了解如何进行行列转换对于数据库管理员和数据分析师至关重要。这不仅可以提高数据查询的效率,还能帮助更好地理解和展示数据,从而支持业务决策。因此,熟练掌握这些技巧对于提升 MySQL 数据操作技能...

    行列转换SQL存储过程代码

    ### 行列转换SQL存储过程代码解析 #### 核心知识点概述 本篇文章将深入探讨一个SQL存储过程的实现方式,该存储过程主要用于完成“行转列”(即行列转换)的操作。通过这种方式,可以有效地将数据库表中的行数据...

    一道java面试题 行列转换

    通过对以上两种数据库环境下的行列转换方案的学习,我们可以看到,无论是 SQL Server 还是 Oracle,在实现上都采用了相似的逻辑,即通过条件判断来实现行列转换。不同的数据库可能支持的函数或语法有所不同,但基本...

    oracle行列转换

    Oracle 行列转换是指将数据库表中的行转换为列或将列转换为行的一种操作。这种操作在实际应用中非常有用,例如在数据报表生成、数据分析和数据挖掘等领域。下面我们将详细介绍 Oracle 行列转换的六种情况。 一、列...

    Sql语句实现表的行列转换,行转列,列转行

    ### SQL语句实现表的行列转换,行转列,列转行 在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。其中,“行列转换”就是一种非常实用的功能,它可以帮助我们将表中的行数据转换为列数据,...

Global site tag (gtag.js) - Google Analytics