`
liushengit
  • 浏览: 36725 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

Oracle 列转行函数 Listagg()

 
阅读更多
 with temp as(  
      select 1001 user_id, '张三' real_name ,'一年级' grade ,'1班' classes from dual union all  
      select 1002 user_id, '李四' real_name ,'一年级' grade ,'2班' classes from dual union all  
      select 1003 user_id, '王五' real_name ,'二年级' grade ,'3班' classes from dual union all  
      select 1004 user_id, '陈六' real_name ,'二年级' grade ,'1班' classes from dual union all  
      select 1005 user_id, '左七' real_name ,'一年级' grade ,'3班' classes from dual union all  
      select 1006 user_id, '拉八' real_name ,'三年级' grade ,'1班' classes from dual   
    )  
    select real_name,  
           grade,  
           classes,  
           listagg(classes,',') within GROUP (order by grade) over (partition by grade) rank  
    from temp  

 



 

 select grade, listagg(classes, ',') within GROUP(order by grade)
      from temp
     group by grade

 



 

 

 

 

  • 大小: 3.2 KB
  • 大小: 2 KB
分享到:
评论

相关推荐

    oracle wm_concat 列转行 逗号分隔

    然而,由于WM_CONCAT的局限性,Oracle建议使用其他替代方法,如使用LISTAGG函数(自Oracle 11g R2起提供)或者自定义聚合函数来实现类似的功能。LISTAGG函数提供了更好的控制,比如可以指定分隔符,并且是标准的SQL...

    Oracle行转列

    Oracle行转列 Oracle行转列是指在Oracle...Oracle行转列操作可以使用多种方法来实现,包括UNION ALL、MODEL、COLLECTION、AGGREGATE FUNCTION、LISTAGG、REGEXP_SPLIT等方法。这些方法可以满足不同的应用场景和需求。

    oracle学习参考

    - **字符串的列转行**:对于简单的列转行,可以使用`LISTAGG`函数,但其灵活性有限。推荐使用自定义的函数,如`to_string_limit`,它可以更灵活地控制字符串的排序、去重和长度限制。 在实际工作中,理解并熟练...

    oracle数据行列转换

    3. 列转行:Oracle 10g中,我们通常使用LISTAGG函数(在11g中引入,但在10g可以通过其他方式模拟)或者CONNECT BY语句来实现列转行。例如,如果我们有一个包含多个产品分类的列,希望将其拆分为多行,可以使用以下...

    Oracle 行列转换 总结

    例如,使用 LISTAGG 函数可以将多个列转换成一个字符串。 4. 多行转换成字符串 多行转换成字符串是指将多行转换成一个字符串。例如,使用 LISTAGG 函数可以将多行转换成一个字符串。 5. 字符串转换成多列 字符串...

    Oracle行列转换_总结

    - 使用聚合函数(如 `LISTAGG`)将多行数据连接成一个字符串。 - **字符串转换成多列** - 使用 `SUBSTR` 和 `INSTR` 函数,或者 `REGEXP_SUBSTR` 函数将字符串拆分成多列。 - **字符串转换成多行** - 同样地,...

    数据库行列转换算法

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

    行列转换总结.pdf

    列转行是指将数据表中的列转换为行的操作。这种转换常用于将分类数据展平,以便更好地展示数据之间的关系或进行后续的数据分析。根据给定的部分内容,我们可以通过三种不同的方法来进行列转行操作。 ##### 2.1 使用...

    sql高级进阶

    - 列转行:使用UNPIVOT或其他数据库函数将列数据转换为行数据。 - 将结果集反向转置为一列:将多行数据合并为单个字段。 - 抑制结果集中的重复值:使用DISTINCT关键字。 - 利用“行转列”进行计算:在转换后的...

Global site tag (gtag.js) - Google Analytics