暂无图片
一个麻烦的UNPIVOT实现
我来答
分享
ORACLE11g
2021-10-12
一个麻烦的UNPIVOT实现

表结构如下:

 ENTITY_CODE,              A公司            B公司 

AMOUNT_A_1YUE,         100

AMOUNT_B_1YUE,         200

AMOUNT_C_1YUE,        300

AMOUNT_A_2YUE,                              150

AMOUNT_B_2YUE,                              250

AMOUNT_C_2YUE;                             350

如何转换为

ENTITY_CODE, PERIOD(期间),AMOUNT_A, AMOUNT_B, AMOUNT_C

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

A公司                1月                    100                200            300

B公司                2月                    150                250             350




我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
Uncopyrightable

PERIOD(期间)列咋来的?

暂无图片 评论
暂无图片 有用 0
打赏 0
ORACLE11g

列转行 转出来的呀

暂无图片 评论
暂无图片 有用 0
打赏 0
chengang

你这个写case when 就可以出来了。不麻烦啊。

暂无图片 评论
暂无图片 有用 0
打赏 0
DarkAthena

不是很麻烦

with t1 as (select regexp_substr(ENTITY_CODE, '[^_]+', 1, 2) ENTITY_CODE, REPLACE(regexp_substr(ENTITY_CODE, '[^_]+', 1, 3), 'YUE', '月') PERIOD, A公司, B公司 from test_pivot), t2 as (select * from t1 unpivot(amount FOR 公司 in(A公司, B公司))) select * from t2 pivot (sum(amount) for ENTITY_CODE in('A' AMOUNT_A, 'B' AMOUNT_B, 'C' AMOUNT_C))
复制
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
现在Oracle 19.7稳定吗?
回答 2
已采纳
我都干到19.13了,没发现什么问题
ORACLE 11.2.0.4 liunx 服务器 512G内存 ,SGA和PGA内存怎么合理的分配?
回答 3
这个要结合一些你的业务类型
Oracle19C rac,同样sql语句,两个节点执行计划不一样的原因,怎么预防?
回答 8
已采纳
原因:数据分布不均,系统负载差异,统计信息未更新或不一致,并行度设置一直,确保Oracle实例版本一致解决:定期更新统计信息;使用绑定变量而不是硬编码值可以确保SQL语句被优化器视为同一查询,从而可能
怎么查看Oracle执行过哪些SQL
回答 1
已采纳
1、awr2、vSQL3、vsession和v$SQL关联查出来4、sqldeveloper.exe中的SQL监控5、oracle的em中6、恩墨有SQM和白求恩两款软件
AWR分析报告问题求助:运行卡顿
回答 2
硬件配置高, SQL执行效率低,SQL优化能解决问题.
一个数据库实例下面有十几个用户,如何实现分用户备份各自的数据,不用一个一个exp?各用户如何实现并发备份?
回答 3
只能写脚本然后定时任务一起备份了。但是备份本来就是高IO操作。一起可能IO用尽还有竞争。没有必要并行。比如ABCDEF几个schema一起,可能不快。但是每个备份开并行能快一些。主要看你磁盘的IO能力
业务高峰期修改大表的字段长度,会对业务产生多大影响
回答 1
看altertable的算法,如果是copy,业务基本不可用。如果是inplace,那么加的过程中不会影响业务,只是在开始和提交阶段会有锁,不过加锁释放锁会非常快如果不放心,可以使用pt或者ghost
达梦迁移工具具体怎么使用啊,是DM7=>oracle,数据源和目的中,信息填写有什么要求啊?
回答 1
简单给你说一下过程:打开达梦迁移工具》新建工程》然后左边树形栏会显示你新建的工程,在数据类型映射里面,你可以定义dm7Oracle迁移的映射关系,调度和作业里面你可以建相应的调度和作业,然后还有个迁移
如果在oracle 中一个表的某个字段有索引的基础上。把这个字段的长度改变后。那这个字段索引还有效吗?
回答 1
已采纳
有效。只要类型不改变。你可以看看执行计划。
哪位可以解释下oracle下这道正则表达式
回答 1
已采纳
在Oracle中,REGEXPREPLACE函数用于使用正则表达式替换字符串中的子字符串。正则表达式 '(.)' 匹配字符串 '12345' 中的每个字符。替换
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~