`

oracle 10g+ 行列转换

 
阅读更多
WITH t AS(
  SELECT 1 AS sno, 1 AS cno, 5 AS grade
    FROM dual
  UNION ALL
  SELECT 1, 2, 6
    FROM dual
  UNION ALL
  SELECT 1, 3, 10
    FROM dual
  UNION ALL
  SELECT 2, 3, 10
    FROM dual
  UNION ALL
  SELECT 2, 2, 10
    FROM dual
  UNION ALL
  SELECT 3, 1, 9
    FROM dual
  UNION ALL
  SELECT 3, 2, 9
    FROM dual)
  SELECT a.sno, Max(a.aa)
    FROM (SELECT sno,
                 wm_concat(cno || ',' || grade) over(partition BY sno order by cno, grade) AS aa
            FROM t) a
   GROUP BY a.sno;

 

运行一下就知道是啥意思了

 

分享到:
评论
1 楼 dhyang909 2012-09-07  

相关推荐

    ORACLE 10g 的行列转换(学生科目成绩)测试题

    在"ORACLE 10g 的行列转换(学生科目成绩)测试题"这个主题中,我们将重点探讨如何在实际场景中,如处理学生科目成绩,应用这些技术。 首先,让我们理解PIVOT操作。PIVOT用于将行数据转换为列数据。在学生科目成绩...

    Oracle行列转换

    通过下载提供的`Oracle补充内容_行列转换.sql`文件,你可以看到具体的SQL示例和实际操作,这将帮助你更好地理解和掌握Oracle的行列转换技巧。在实践中,理解并熟练运用这些技术,将有助于你更有效地处理和展示数据,...

    oracle行列转换总结

    集合类型如`VARRAY`或`NATIVE ARRAY`也可以用于行列转换,特别是在Oracle 8i、9i和10g版本中。这种方法涉及创建集合类型的对象,然后将列数据插入到这些对象中。例如: 首先定义集合类型: ```sql CREATE TYPE cv_...

    oracle数据行列转换

    本篇文章将详细讲解Oracle 10g中的行列转换技术,包括如何实现行转列和列转行。 首先,我们要了解为什么要进行行列转换。在实际业务场景中,有时我们需要将多行数据合并到一列,或者将一列数据分散到多行,以适应...

    Oracle 行列转换总结

    ### Oracle 行列转换知识点详解 #### 一、概述 在数据库操作中,行列转换是一项非常实用的功能,尤其是在处理报表数据或需要特定格式输出时。本文档将详细讲解Oracle数据库中的行列转换方法,并通过具体实例来说明...

    Oracle行列转换_总结

    ### Oracle 行列转换知识点详解 #### 一、概述 在数据库操作中,有时需要将数据从行格式转换为列格式或反之亦然,这种需求通常被称为“行列转换”。Oracle 提供了多种方法来实现这样的转换,适用于不同的场景。本文...

    通过SQL语句实现行列转换的几种方法

    从Oracle 10g 开始,`wmsys.wm_concat()` 函数提供了更简单的解决方案。这个函数可以自动将多行数据合并为一个以逗号分隔的字符串。尽管这种方法非常直观且易于使用,但它存在一个问题:当查询结果集中有多行数据时...

    数据库行列转换算法

    Oracle数据库提供了多种方法来实现这种转换,本篇将详细介绍如何在Oracle中进行行列转换,包括列转行、行转列以及各种复杂场景下的转换。 1. 列转行 列转行主要是将数据库表中的多列数据转换为多行数据。在Oracle...

    行列转换总结.pdf

    适用于 Oracle 10g 及以上版本。这种方法利用了 Oracle 的 `MODEL` 子句,该子句主要用于多维数据分析和复杂的数据重排操作。 **示例 SQL**: ```sql SELECT id, cn, cv FROM t_col_row MODEL RETURN UPDATED ROWS ...

    Oracle的列转行问题

    当然,Oracle数据库从11g版本开始提供了更高级的`PIVOT`和`UNPIVOT`操作,它们是专为行列转换设计的内置功能,使用起来更为简洁且高效。例如,使用`PIVOT`对上述案例进行列转行的代码如下: ```sql SELECT * FROM f...

    Oracle高级sql学习与练习

    20. 行列转换是一个常见的数据处理问题,通过特定的函数和子查询可以实现数据的行列转换。 21. 连续值和累计值问题关注如何在SQL查询中处理时间序列数据,以及如何生成连续的数值序列或累计值。 22. NULL和DUAL...

    orcale数据库 行列互换

    在Oracle数据库中,"行列互换"是一种常见的数据处理需求,它涉及到将数据表中的行转换为列,或者将列转换为行。这个过程在数据分析、报表制作或数据展示时非常有用。以下是对这个主题的详细解释: 一、行转列 在...

    oracle学习参考

    本篇将深入探讨Oracle中的字符串操作、行列转换以及批量处理等关键知识点。 1. **批量获取文件名** 在命令行环境下,可以通过批处理命令`DIR *.* /B > LIST.TXT`来获取当前目录下的所有文件名,并将其保存到名为`...

    通过SQL语句实现行列转换的几种方法.rar_oralce_possiblevxh_southernzw8_sql

    这种操作通常被称为“行列转换”。在Oracle数据库系统中,实现行转列的方法有很多种,这些方法在处理特定类型的数据分析任务时尤其有用。下面我们将详细介绍几种常见的SQL行转列方法。 1. **使用PIVOT**:Oracle 11...

    oracle实现多行合并的方法

    oracle10g以后,提供了一个函数WMSYS.WM_CONCAT,能很轻松实现该功能。 代码如下:select t.rank, WMSYS.WM_CONCAT(t.Name) TIME From t_menu_item t GROUP BY t.rank; 这样,看着就舒服多了。 这个方法没出来之前,...

    Oracle单条SQL语句可以做什么.pdf

    综上所述,Oracle中的单条SQL语句可以通过各种高级功能实现复杂的查询逻辑,包括行列转换、处理重复值以及自定义合计函数等。这些技术的应用不仅能够提高查询效率,还能够简化数据处理流程,为企业提供更高效的数据...

    超大型txt文本查看器(可以查看10G以上文本)

    标题中的“超大型txt文本查看器(可以查看10G以上文本)”指的是专门设计用于处理大容量文本文件的工具,这种工具通常具有优化的内存管理和快速加载机制,使得用户能够轻松查看、编辑甚至搜索那些传统文本编辑器无法...

    pivot_unpivot

    在Oracle 11g中引入了两项新功能:`PIVOT` 和 `UNPIVOT`,这两项功能使得在SQL中进行数据的行列转换变得更加简单和直观。这些操作特别适用于报表开发,能够帮助用户快速地将数据按照特定的需求重新组织。 #### 二、...

    sqltoy-orm框架系统-其他

    6、提供行列转换(数据旋转),避免写复杂的sql或存储过程,用算法来化解对sql的高要求,同时实现数据库无关(不管是mysql还是sqlserver) 7、提供分组汇总求平均算法(用算法代替sql避免跨数据库语法不一致) 8、分库分表...

Global site tag (gtag.js) - Google Analytics