ORACLE中的listagg() 行列转换函数以及表的复制
来源:互联网 发布:flightclub潮流运淘宝 编辑:程序博客网 时间:2024/06/05 10:25
1、listagg()行列转换函数
使用该函数可以实现多行合并的效果,例如在工作中,我们做一些财务报表,那需要就满足某个条件的多行记录合并在一起进行显示,则使用该函数。具体使用方法如下:
例如:查询scott用户的emp表
select * fromscott.emp;
需求:现在需要将各个部门的多行人员信息合并
selectdeptno,listagg(ename,',') within group (order by ename) as employees
from scott.emp
groupby deptno;
注意事项:order by必须存在,否则会出现报错。并且排序的字段不同,所获得的结果集不一样。
使用该函数的正确格式为 listagg…..withingroup(order by …..)
问题:在使用的过程中,出现了另外一种情况,或者说为错误。在开发功能的过程中,使用该函数出现了乱码的情况,如下图
经过上网查询相关资料,此种情况是数据库中字符集的原因,解决方法:只需要对使用行列转换函数的字段进行字符转换即可。修改后的SQL语句为:
listagg(to_char(mgroup_name),'/') within group(order by mgroup_name ) asmname
2、oracle中表的复制
开发过程中,总是避免不了对数据库中的表进行复制,方便操作。对于表的复制,存在如下几种情况:
首先命名两个数据表,其一为已经存在与于数据库中的表一testOld,其二为将要建立的表二为testNew
①两个表的数据结构相同,并且需要将testOld的数据复制到testNew表中
insert into testNew select * fromtestOld;
②两个表的数据结构不同,并且需要将testOld的数据复制到testNew表中
create table testNew select * from testOld;
③只是复制表的结构,不复制表数据
create table testNewselect * from testOld where 1=2;
④只是复制表的数据,不复制表的结构
如果两个表结构一样
insert into testNew select * fromtestOld;
如果两个表结构不同
insert intotestNew(column1,column2,column3…) select column1,column2,column3… from testOld;
- ORACLE中的listagg() 行列转换函数以及表的复制
- ORACLE分析函数(6)--使用listagg实现行列转换
- oracle中的listagg函数
- 行列转换 listagg & wm_concat的安装
- Oracle11.2新特性之listagg函数 (行列转换)
- oracle函数listagg的使用说明
- oracle函数listagg的使用说明
- oracle 行列转换函数
- Oracle函数listagg根据表中的行创建分隔列表
- Oracle decode函数用法与表的行列转换
- 利用函数实现的oracle行列转换
- oracle行列转换函数的使用
- oracle行列转换函数的使用
- oracle行列转换函数的使用
- Oracle中的列转行函数listagg()
- Oracle的行列转换
- Oracle的行列转换
- Oracle的行列转换
- 10 种机器学习算法的要点(附 Python 和 R 代码)
- 欢迎使用CSDN-markdown编辑器
- SUSE11环境下Redis+Keepalived实现高可用技术
- Kafka简介及使用PHP处理Kafka消息
- 牛客网练习题JAVA
- ORACLE中的listagg() 行列转换函数以及表的复制
- Unity使用Ugui实现多框输入,类似于支付宝的支付密码
- swiper使用例子
- Python3生成带logo的二维码
- 内存分析#垃圾回收机制
- 软件开发初学者如何才能提高…
- 找实习和找工作的一些经历
- 信号量 Semaphore
- WEB前端规范文档(转载)