千家信息网

初学Oracle UNPIVOT,PIVOT,WMSYS.WM_CONCAT三个函数

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,最近有接触到Oracle UNPIVOT,PIVOT,WMSYS.WM_CONCAT,以免忘记,整理如下:--------------------------------------UNPIVOT的用
千家信息网最后更新 2026年11月02日初学Oracle UNPIVOT,PIVOT,WMSYS.WM_CONCAT三个函数

最近有接触到Oracle UNPIVOT,PIVOT,WMSYS.WM_CONCAT,以免忘记,整理如下:

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

UNPIVOT的用法:

原始资料如下图:

现在要将资料转换成如下格式:

将资料按照INQTY,OUTQTY,REMAININGQTY三个栏位进行列转行的处理.实现上面的转换,使用的函数是UNPIVOT,具体实现代码如下:

SELECT WEEKLY, ML, CVE, ITEMS, ITEM, QUANTITY

FROM TESTP UNPIVOT(QUANTITY FOR ITEM IN(INQTY, OUTQTY, remainingqty))

WHERE ID = '1';

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

PIVOT的用法:

如果原始资料是如下图这样:

希望资料按照如下图片显示:

首先将资料根据INQTY,OUTQTY,REMAININGQTY三个栏位进行列转行的处理,然后再根据Weekly栏位做行转列的处理.具体实现代码如下:

SELECT *

FROM (SELECT WEEKLY, ML, CVE, ITEMS, ITEM, QUANTITY

FROM TESTP UNPIVOT(QUANTITY FOR ITEM IN(INQTY,OUTQTY,remainingqty))

WHERE ID = '1') PIVOT(SUM(QUANTITY) FOR WEEKLY IN('W150826','W150827'))

ORDER BY ML, CVE, ITEMS;

需要注意的是,PIVOT函数中的红色字体部分只能是聚合函数,绿色字体部分不能是动态的字串[就是不能直接填写一个栏位放在该处].

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

WMSYS.WM_CONCAT的用法:

原始资料如下图:

希望资料按ID,WEEKLY,ML,CVE group by 汇总,多个items以逗号分隔,显示在一个单元格里面:

具体实现代码如下:

SELECT ID, weekly, ml, cve, to_char(WMSYS.WM_CONCAT(items))

FROM TESTP

WHERE ID = '1'

GROUP BY ID, weekly, ml, cve

ORDER BY weekly;










资料 函数 原始 代码 处理 三个 字体 部分 动态 单元 图片 多个 就是 格式 红色 绿色 逗号 面的 接触 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 花魁咖啡 互联网科技深圳 互联网科技有限公司图片 九亚互联网科技 极限挑战互联网科技 百单互联网科技有限公司 智慧科技互联网 齐家互联网科技有限公司 互联网科技论坛 成都玖崟互联网科技有限公司乐商圈怎么样 中国的互联网科技企业的崛起 随着互联网科技发展 成都互联网科技公司100强 银川新华互联网科技职业技术培训学校图片 茂名市互联网科技产业园 中国航天科技大学国际工业互联网 速维有品互联网信息科技(苏州)有限公司 江苏互联网智能科技产品出厂价 互联网科技机房 保山互联网科技靠谱吗 互联网科技保险 天下捷融互联网科技 汽车互联网创新科技园 浙江互联网科技研学营 青海科技产业互联网发展 本届互联网博览会上的黑科技 半导体行业属于互联网高科技类吗 互联网科技品牌 互联网科技创新方面的资料 科技发展第三阶段互联网时代
0