`

列转行 sql

阅读更多

如表ROW2COLUMN2有以下数据:

名字 课程 分数

1 张三 语文 80  
2 张三 数学 86 
3 张三 英语 75
4 李四 语文 78
5 李四 数学 85
6 李四 英语 78

想变成下面记录:

名字 语文 数学 英语

1 李四 78 85 78
2 张三 80 86 75

代替:
      名字       课程     分数
 A          A1        80

 A    B1     86
 
 B    A1       75

 C          C1        78
 
 C    A1        85

变成 :
 名字    A1   B1   C1
 
 A       80    86
 B       75

行转成列: -----------------------------------------------

select man, min(decode(课程,'A1',num))  A1,
       min(decode(课程,'B1',num))  B1,
       min(decode(课程,'C1',num))  C1
       from tab group by 名字

另一种方法:
select t1.名字, t1.分数,t2.分数,t3.分数 from Tab t1 inner join Tab t2 on t1.名字=t2.名字
inner join Tab t3 on t1.名字=t3.名字
where t1.课程='A1' and t2.课程='B1' and t3.课程='C1'

方法三:
--这种情况可以用分析函数实现:
SELECT b.名字,
MAX(decode(rn, 1, num, NULL)) cn_1,
MAX(decode(rn, 2, num, NULL)) cn_2,
MAX(decode(rn, 3, num, NULL)) cn_3
FROM (SELECT 名字,分数,
row_number() over(PARTITION BY 名字 ORDER BY 课程) rn
FROM tab) b
GROUP BY  b.名字;

分享到:
评论

相关推荐

    Mysql 行转列,列转行 SQL语句和示例表结构SQL

    MySQL 虽然没有内置的行转列和列转行函数,但通过 CASE、GROUP_CONCAT、UNION ALL 和 JOIN 等 SQL 语句,我们可以灵活地对数据进行转换,满足不同的数据分析需求。在实际应用中,应根据数据的特性和业务需求选择合适...

    sql 列转行

    SQL 列转行技巧详解 SQL 列转行是将行数据转换为列数据的技术,广泛应用于数据分析、报表生成和数据挖掘等领域。今天,我们将通过实例详细介绍 SQL 列转行的用法和技巧。 什么是 SQL 列转行 SQL 列转行是指将行...

    SQL Server 列转行代码

    SQL Server 列转行代码,供大伙参考

    sql列转行以及行转列的通用存储过程

    根据提供的标题、描述、标签及部分内容,本文将详细介绍SQL中实现列转行及行转列通用存储过程的具体方法,特别是针对Microsoft SQL Server版本的应用场景。 ### 标题解析:SQL列转行及行转列的通用存储过程 该标题...

    DB2 SQL 实现行转列,列转行

    DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列

    (SQL)列转行工具

    可以把一列转成一行…… 分隔符默认为英文逗号,也可以转成INSERT 中VALUES()后面的单引号加逗号...以前用T-SQL时,总是把一列复制到EXCEL中,转置,然后复制到记本事中,把一空格替换成逗号……,这个工具可以直接搞定

    SqlServer行转列和列转行

    SqlServer如何进行行转列和列转行方法

    sql行转列,与列转行

    sql 行转列 与列转行,oracle ,msssql等,详细数据库操作方法,各种例子,欢迎大家学习。、~

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

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

    SQL列转行显示方法

    ### SQL列转行显示方法 #### 一、背景及需求 在处理数据库中的数据时,有时候需要将一列中的多个值转化为多列的形式展示,这通常称为“列转行”操作。这种转换可以使得数据更适合特定的报表或分析需求。例如,原始...

    sql2005列转行存储过程代码

    在本案例中,我们将详细探讨如何在SQL Server 2005中进行列转行的操作,特别是通过存储过程来实现。 首先,列转行通常用于处理具有固定列数但列名可能变化的数据。例如,你可能有一个表,其中每个月的销售数据存储...

    SQL行专列列转行存储过程

    SQL行专列列转行的存储过程 很实用的 SQL行专列列转行的存储过程 很实用的

    SQL 列转行

    SQL 列转行 能直接运行

    SqlServer列转行的另一种方式

    ### SqlServer列转行的另一种方式 在数据库处理过程中,经常需要将数据按照特定的方式进行转换,以便更好地满足业务需求或提高查询效率。常见的转换包括列转行、行转列等操作。通常我们使用`PIVOT`和`UNPIVOT`来...

    精典的SQL语句。行转列,列转行的语句

    精典的SQL语句,行转列,列转行的语句 本文共分六个部分,分别讨论精典的SQL语句,行转列,列转行的语句,行列转换、取得数据表的所有列名、更改用户密码、判断表的哪些字段不允许为空、找到含有相同字段的表六个...

    sqlserver使用UNPIVOT函数列转行

    ### SQL Server 使用 UNPIVOT 函数实现列转行 #### 概述 在 SQL Server 中,`UNPIVOT` 函数是一个非常实用的功能,主要用于将数据表中的列转换为行,即“列转行”操作。这种操作在数据分析过程中经常用到,尤其是...

    SQL 2005 列转行的方法

    本文将详细介绍两种实现SQL Server 2005中列转行的方法:使用PIVOT和使用CASE语句。 **方法一:使用PIVOT** PIVOT是SQL Server 2005引入的一个新特性,用于将一个表中的列转换为行。以下是一个基本的PIVOT使用示例...

    SQL行转列和列转行-静态互转-动态互转

    有case when方式和2005之后的内置pivot和unpivot方法来实现,行列互转,可以分为静态互转,动态互转。

    列转行小工具

    "列转行 in 的入参转换"可能是指在使用这些功能时,需要对输入的参数进行适当的格式化,例如,如果要对某个字段进行PIVOT,可能需要提供一个列名列表或者动态生成的SQL条件。这可能涉及到字符串拼接、数组处理等编程...

Global site tag (gtag.js) - Google Analytics