oracle列合并的实现方法
很多场合我们都会用到oracle的列合并,oracle提供了如下一些方法用来实现列合并:
一、Oracle 10G以前使用WMSYS.WM_CONCAT:
wmsys.wm_concat将字段的值用","来隔开。
select id,wm_concat(name) from tab_name group by id;
二、使用sys_connect_by_path
sys_connect_by_path(字段名, 2个字段之间的连接符号),这里的连接符号不要使用逗号,oracle会报错,如果一定要用,可以使用replace替换一下,方法如下 REPLACE(字段名,原字符,',')。这个函数使用之前必须先建立一个树,否则无用。
三、Oracle 11G以后可以使用listagg
select listagg(id,',') within group (order by id) col_name from tab_name;
四、使用自定义函数:
create or replace function getRow(table1 varchar2 , ptdb1 varchar2) RETURN VARCHAR2 is Result VARCHAR2(1000); begin FOR cur IN (SELECT audit_code FROM sys_audit_column t2 WHERE table1 = t2.table_name and ptdb1 = t2.ptdb_name) LOOP RESULT := RESULT||cur.audit_code||','; END LOOP; RESULT:=rtrim(RESULT,','); return(Result); end getRow;
相关推荐
-
修改oracle数据库用户名及密码的方法
改oracle数据库用户名称和密码(Linux为例),有需要的朋友可以参考下. 一.修改前准备工作: 使用ssh工具以root身份连接服务器, 然后切换到oracle用户:su - oracle(回车) 使用sqlplus连接数据库:sqlplus /nolog(回车) 以管理员身份登录sys用户:conn sys/sys as sysdba(回车) 数据库连接成功,至此准备工作完成. 二.修改用户名称. 数据库连接成功后,在SQL>提示后面继续输入: 首先查到到所需修改用户名称的用户需要:se
-
php连接oracle数据库及查询数据的方法
本文实例讲述了php连接oracle数据库及查询数据的方法.分享给大家供大家参考.具体分析如下: php有强大的功能不但可以支持mysql,mssql,mysqli之个我们还可以与oracle数据连接,要让php支持oracle非常的简单我们只要把php.ini中的;extention = php_oci8.dll分号去掉即可. php支持oracle连接函数 php.ini文件中的配置,去掉 ;extention = php_oci8.dll,去掉前面的分号,重启apache就可以了,如果不行
-
oracle ORA-00988 missing or invalid password 错误
在设置数据库实例的密码时,注意不要以数字开头,否则您将会遇到 ORA-00988 missing or invalid password (口令缺失或无效) 错误. Oracle 10g 安装完成后,您可使用 dbca 命令创建新的数据库实例,或维护已有的数据库实例. 如果您安装的是 Oracle XE 数据库,则必须反安装 Oracle XE 后重新安装 Oracle XE,并在安装过程中指定非数字开头的密码 (例如 password 或 pswd123). ORA-00988: 口令缺失或无
-
oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼接在一起
需求: 目前接触BI系统,由于业务系统的交易记录有很多,常常有些主管需要看到所有的记录情况,但是又不想滚动,想一眼就可以看到所有的,于是就想到了字符串拼接的形式. 解决方案:使用Oracle自带的函数 WMSYS.WM_CONCAT,进行拼接. 函数限制:它的输出不能超过4000个字节. 为了不让SQL出错,又可以满足业务的需求,超过4000个字节的部分,使用"..." 实现SQL如下: 复制代码 代码如下: CREATE TABLE TMP_PRODUCT (PRODUCT_TYPE
-
C#实现远程连接ORACLE数据库的方法
本文实例讲述了C#实现远程连接ORACLE数据库的方法.分享给大家供大家参考.具体分析如下: 使用该方法,只需要传入几个必要的参数就可以进行数据库的远程连接测试了,连接成功返回TRUE,失败返回false. 参数说明: 第一个参数表示你在数据库中的用户,具有可以登录权限的 第二个参数表示用户的密码,没有加密 第三个参数表示登录的服务器的地址 第四个参数表示登录的服务器的端口号 第五个参数表示登录的数据库的名字 一定记得必要的引用 复制代码 代码如下: /// <summary> /// 测试数
-
Oracle 多行记录合并/连接/聚合字符串的几种方法
什么是合并多行字符串(连接字符串)呢,例如: SQL> desc test; Name Type Nullable Default Comments ------- ------------ -------- ------- -------- COUNTRY VARCHAR2(20) Y CITY VARCHAR2(20) Y SQL> select * from test; COUNTRY CITY -------------------- -------------------- 中国 台
-
oracle实现多行合并的方法
本文实例讲述了oracle实现多行合并的方法.分享给大家供大家参考.具体分析如下: 在写sql时,经常会有将某列的字段合并起来,比如将某人名下每个月的工资列示,但是每个人只能占一行. 像这种场景,可能用行列转换也能实现,但如果这个月份的信息不固定,就无法使用行列转换了. oracle10g以后,提供了一个函数WMSYS.WM_CONCAT,能很轻松实现该功能. 复制代码 代码如下: select t.rank, WMSYS.WM_CONCAT(t.Name) TIME From t_menu_i
-
C#调用Oracle存储过程的方法
本文实例讲述了C#调用Oracle存储过程的方法.分享给大家供大家参考.具体实现方法如下: Oracle数据库代码如下: 复制代码 代码如下: create or replace procedure proce_test(paramin in varchar2,paramout out varchar2,paraminout in out varchar2) as varparam varchar2(28); begin varparam:=paramin; paramout:=va
-
oracle 合并查询 事务 sql函数小知识学习
表查询: 合并查询:使用union关键字,可将满足条件的重复行去掉. 复制代码 代码如下: select ename,sal,job from emp where sal > 2500 union select ename,sal,job from emp where job = 'MANAGER'; 而union all用法和union相似,但是不会取消重复行. intersect 用来取两个结果的交集. minus用来取两个结果的差集. 使员工scott的岗位,工资,补助与SMITH员工一样
-
oracle合并列的函数wm_concat的使用详解
oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle wm_concat(column)函数实现字段合并,如果您对oracle wm_concat(column)函数使用方面感兴趣的话,不妨一看.shopping:-----------------------------------------u_id goods num------------------------------------------1
随机推荐
- Java8使用lambda实现Java的尾递归
- JS对象的深度克隆方法示例
- Python使用内置json模块解析json格式数据的方法
- js倒计时代码
- IScroll那些事_当内容不足时下拉刷新的解决方法
- JS+HTML5 FileReader实现文件上传前本地预览功能
- CodeIgniter连贯操作的底层原理分析
- Laravel5中防止XSS跨站攻击的方法
- 基于mysql 5.5 设置字符集问题的详解
- 在Linux系统中搭建Node.js开发环境的简单步骤讲解
- jquery操作checkbox火狐下第二次无法勾选的解决方法
- Python正则表达式分组概念与用法详解
- vbs 自动复制U盘的内容
- MySQL优化GROUP BY(松散索引扫描与紧凑索引扫描)
- 关于JS变量和作用域详解
- 114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
- python实现list由于numpy array的转换
- Java实现多线程断点下载
- python matlibplot绘制多条曲线图
- Vue 递归多级菜单的实例代码