oracle 行转列+列转行

本文详细介绍了Oracle数据库中实现行转列的两种方法:使用decode函数结合sum或max,以及利用listagg函数。同时,提到了列转行的一种技巧,即通过REGEXP_SUBSTR函数进行转换。对于需要处理复杂数据排列的数据库操作,这些方法提供了实用的解决方案。
摘要由CSDN通过智能技术生成

一、行转列

(1)sum(decode(列字段,?,列字段1,0))  列字段名   max(decode(列字段,?,列字段1,''))  列字段名  max(decode(列字段,?,列字段1,''))  列字段名

当列字段=?是取列字段1的值,否则取0或''  [区别:sum 要求列字段1的值必须是数字,max/min可以是数字或字符串]

(2)listagg()函数

基础的用法如下:listagg() WITHIN GROUP ()

LISTAGG(1,2) WITHIN GROUP( ORDER BY 3)

1:需要拼接的数据表中的字段

2:以什么字符分割,例如逗号,分号等字符

2与3是相同的字段

它的用法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来

例如:

SELECT LISTAGG(t.e

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值