如表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 虽然没有内置的行转列和列转行函数,但通过 CASE、GROUP_CONCAT、UNION ALL 和 JOIN 等 SQL 语句,我们可以灵活地对数据进行转换,满足不同的数据分析需求。在实际应用中,应根据数据的特性和业务需求选择合适...
SQL 列转行技巧详解 SQL 列转行是将行数据转换为列数据的技术,广泛应用于数据分析、报表生成和数据挖掘等领域。今天,我们将通过实例详细介绍 SQL 列转行的用法和技巧。 什么是 SQL 列转行 SQL 列转行是指将行...
SQL Server 列转行代码,供大伙参考
根据提供的标题、描述、标签及部分内容,本文将详细介绍SQL中实现列转行及行转列通用存储过程的具体方法,特别是针对Microsoft SQL Server版本的应用场景。 ### 标题解析:SQL列转行及行转列的通用存储过程 该标题...
DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列
可以把一列转成一行…… 分隔符默认为英文逗号,也可以转成INSERT 中VALUES()后面的单引号加逗号...以前用T-SQL时,总是把一列复制到EXCEL中,转置,然后复制到记本事中,把一空格替换成逗号……,这个工具可以直接搞定
SqlServer如何进行行转列和列转行方法
sql 行转列 与列转行,oracle ,msssql等,详细数据库操作方法,各种例子,欢迎大家学习。、~
### SQL语句实现表的行列转换,行转列,列转行 在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。其中,“行列转换”就是一种非常实用的功能,它可以帮助我们将表中的行数据转换为列数据,...
### SQL列转行显示方法 #### 一、背景及需求 在处理数据库中的数据时,有时候需要将一列中的多个值转化为多列的形式展示,这通常称为“列转行”操作。这种转换可以使得数据更适合特定的报表或分析需求。例如,原始...
在本案例中,我们将详细探讨如何在SQL Server 2005中进行列转行的操作,特别是通过存储过程来实现。 首先,列转行通常用于处理具有固定列数但列名可能变化的数据。例如,你可能有一个表,其中每个月的销售数据存储...
SQL行专列列转行的存储过程 很实用的 SQL行专列列转行的存储过程 很实用的
SQL 列转行 能直接运行
精典的SQL语句,行转列,列转行的语句 本文共分六个部分,分别讨论精典的SQL语句,行转列,列转行的语句,行列转换、取得数据表的所有列名、更改用户密码、判断表的哪些字段不允许为空、找到含有相同字段的表六个...
### SQL Server 使用 UNPIVOT 函数实现列转行 #### 概述 在 SQL Server 中,`UNPIVOT` 函数是一个非常实用的功能,主要用于将数据表中的列转换为行,即“列转行”操作。这种操作在数据分析过程中经常用到,尤其是...
本文将详细介绍两种实现SQL Server 2005中列转行的方法:使用PIVOT和使用CASE语句。 **方法一:使用PIVOT** PIVOT是SQL Server 2005引入的一个新特性,用于将一个表中的列转换为行。以下是一个基本的PIVOT使用示例...
### SqlServer列转行的另一种方式 在数据库处理过程中,经常需要将数据按照特定的方式进行转换,以便更好地满足业务需求或提高查询效率。常见的转换包括列转行、行转列等操作。通常我们使用`PIVOT`和`UNPIVOT`来...
有case when方式和2005之后的内置pivot和unpivot方法来实现,行列互转,可以分为静态互转,动态互转。
"列转行 in 的入参转换"可能是指在使用这些功能时,需要对输入的参数进行适当的格式化,例如,如果要对某个字段进行PIVOT,可能需要提供一个列名列表或者动态生成的SQL条件。这可能涉及到字符串拼接、数组处理等编程...