oracle行转列函数/通用行转列

Oracle 10g: wm_concat 
Oracle 11g新增了函数: LISTAGG
简单例子:
SELECT 
a.id,
wm_concat (a.remark) new_result
FROM 
tb_name a
group by 
a.id

可以配合over一起使用,具体复杂的用法可以到时再查

通用SQL:

在使用过程中发现有些oracle会存在查询不出数据的问题,这个无解,所以找了个纯sql的列转行

SELECT feeapportion_id,
                       SUBSTR(MAX(SYS_CONNECT_BY_PATH(contract_no, ',')), 2) contract_no
                  FROM (SELECT feeapportion_id,
                               contract_no,
                               rn,
                               LEAD(rn) OVER(PARTITION BY feeapportion_id ORDER BY rn) rn1
                          FROM (SELECT feeapportion_id,
                                       contract_no,
                                       ROW_NUMBER() OVER(ORDER BY contract_no) rn
                                  FROM TH_SF_FEEAPPORTION_d))
                 START WITH rn1 IS NULL
                CONNECT BY rn1 = PRIOR rn
                 GROUP BY feeapportion_id 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值