oracle怎么显示的列数据,如何在列动态显示列数据的Oracle SQL

我不相信,你可以建立一个SQL这样做,因为你有一个可变数目或列。我能找到的最好的是一些动态的SQL建立查询:

set serveroutput on

DECLARE

vSQL VARCHAR2(1000) :=

'SELECT *

FROM (SELECT paper_code, inst_node

FROM test)

PIVOT (count(1) FOR (paper_code) IN (PaperCodeList))

order by inst_node';

vPaperCodeList VARCHAR2(1000);

BEGIN

SELECT LISTAGG(paper_code || ' as "' || paper_code ||'"', ', ') WITHIN GROUP (ORDER BY paper_code) as list

INTO vPaperCodeList

FROM (SELECT DISTINCT paper_code FROM test);

vSQL := REPLACE(

vSQL,

'PaperCodeList',

vPaperCodeList

);

dbms_output.put_line(vSQL);

END;

/

这将建立一个像查询以下内容:

SQL> SELECT *

2 FROM (SELECT paper_code, inst_node

3 FROM test)

4 PIVOT (count(1) FOR (paper_code) IN (71 as "71", 72 as "72", 73 as "73", 75 as "75"))

5 order by inst_node;

INST_NODE 71 72 73 75

---------- ---------- ---------- ---------- ----------

10 2 1 2 1

11 1 1 2 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值