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实现多行合并的方法.分享给大家供大家参考.具体分析如下: 在写sql时,经常会有将某列的字段合并起来,比如将某人名下每个月的工资列示,但是每个人只能占一行. 像这种场景,可能用行列转换也能实现,但如果这个月份的信息不固定,就无法使用行列转换了. oracle10g以后,提供了一个函数WMSYS.WM_CONCAT,能很轻松实现该功能. 复制代码 代码如下: select t.rank, WMSYS.WM_CONCAT(t.Name) TIME From t_menu_i
-
Oracle 多行记录合并/连接/聚合字符串的几种方法
什么是合并多行字符串(连接字符串)呢,例如: SQL> desc test; Name Type Nullable Default Comments ------- ------------ -------- ------- -------- COUNTRY VARCHAR2(20) Y CITY VARCHAR2(20) Y SQL> select * from test; COUNTRY CITY -------------------- -------------------- 中国 台
-
oracle合并列的函数wm_concat的使用详解
oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle wm_concat(column)函数实现字段合并,如果您对oracle wm_concat(column)函数使用方面感兴趣的话,不妨一看.shopping:-----------------------------------------u_id goods num------------------------------------------1
-
修改oracle数据库用户名及密码的方法
改oracle数据库用户名称和密码(Linux为例),有需要的朋友可以参考下. 一.修改前准备工作: 使用ssh工具以root身份连接服务器, 然后切换到oracle用户:su - oracle(回车) 使用sqlplus连接数据库:sqlplus /nolog(回车) 以管理员身份登录sys用户:conn sys/sys as sysdba(回车) 数据库连接成功,至此准备工作完成. 二.修改用户名称. 数据库连接成功后,在SQL>提示后面继续输入: 首先查到到所需修改用户名称的用户需要:se
-
oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼接在一起
需求: 目前接触BI系统,由于业务系统的交易记录有很多,常常有些主管需要看到所有的记录情况,但是又不想滚动,想一眼就可以看到所有的,于是就想到了字符串拼接的形式. 解决方案:使用Oracle自带的函数 WMSYS.WM_CONCAT,进行拼接. 函数限制:它的输出不能超过4000个字节. 为了不让SQL出错,又可以满足业务的需求,超过4000个字节的部分,使用"..." 实现SQL如下: 复制代码 代码如下: CREATE TABLE TMP_PRODUCT (PRODUCT_TYPE
-
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就可以了,如果不行
-
C#实现远程连接ORACLE数据库的方法
本文实例讲述了C#实现远程连接ORACLE数据库的方法.分享给大家供大家参考.具体分析如下: 使用该方法,只需要传入几个必要的参数就可以进行数据库的远程连接测试了,连接成功返回TRUE,失败返回false. 参数说明: 第一个参数表示你在数据库中的用户,具有可以登录权限的 第二个参数表示用户的密码,没有加密 第三个参数表示登录的服务器的地址 第四个参数表示登录的服务器的端口号 第五个参数表示登录的数据库的名字 一定记得必要的引用 复制代码 代码如下: /// <summary> /// 测试数
-
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: 口令缺失或无
-
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员工一样
随机推荐
- ASP.NET对路径"xxxxx"的访问被拒绝的解决方法小结
- Python字符串特性及常用字符串方法的简单笔记
- 删除javascript所创建子节点的方法
- arp病毒 防止arp病毒的批处理
- SQLite教程(二):C/C++接口简介
- 两个select之间option的互相添加操作(jquery实现)
- javascript禁止访客复制网页内容的实现代码
- 在网页里看flash的trace数据的js类
- C#影院售票系统毕业设计(2)
- Java基本数据类型(动力节点java学院整理)
- JavaScript显示当然日期和时间即年月日星期和时间
- 原生javascript实现隔行换色
- linux crontab 实现每秒执行的实例
- jQuery EasyUI常用数据验证汇总
- Android实现摇一摇功能
- PHP内置加密函数详解
- C++Primer笔记之关联容器的使用详解
- Android使用GridView实现日历功能示例(详细代码)
- PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
- Python实现的调用C语言函数功能简单实例