oracle列合并的实现方法_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多行合并成一行、oracle 合并行、oracle 合并列、oracle合并结果集、oracle行转列经典实现,以便于您获取更多的相关知识。

时间: 2024-12-04 01:05:04

oracle列合并的实现方法_oracle的相关文章

ASP.NET中GridView 重复表格列合并的实现方法_实用技巧

这几天做一个项目有用到表格显示数据的地方,客户要求重复的数据列需要合并,就总结了一下GridView 和 Repeater 关于重复数据合并的方法. 效果图如下: GridView : 前台代码 : <div> <asp:GridView ID="gvIncome" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateFie

Oracle建立二进制文件索引的方法_oracle

正在看的ORACLE教程是:Oracle建立二进制文件索引的方法.Oracle text是Oracle的全文检索技术,是9i版本标准版和企业版的一部分.Oracle text使用标准的sql语言索引.查找.分析存储在oracle数据库.文件或者网络里的文本及文档. Oracle text能进行关于文档的语言分析,使用多种方法查找文档,包括关键字.上下文查询.逻辑操作.模式匹配.混合主题查询.HTML/XML段落查找等方法.Oracle text在包含文本和结构化的关系属性的混合查询方面具有优越性

检测oracle数据库坏块的方法_oracle

检测oracle数据库坏块的办法: 1.使用DBV(DB File Verify)工具; 2.使用RMAN(Recovery Manager)工具; DBV(DB File Verify)工具: 外部命令,物理介质数据结构完整性检查: 只能用于数据文件(offline或online),不支持控制文件和重做日志文件的块检查: 也可以验证备份文件(rman的copy命令备份或操作系统CP命令备份): 进入盘符,然后执行以下脚本: D:\app\Administrator\oradata\orcl>d

Oracle删除死锁进程的方法_oracle

本文实例讲述了Oracle删除死锁进程的方法.分享给大家供大家参考.具体如下: 步骤1:用以下SQL查看进程列表,判断出被锁定的表 复制代码 代码如下: SELECT dob.OBJECT_NAME Table_Name,lo.SESSION_ID||', '||vss.SERIAL# 删除号, lo.locked_mode,lo.SESSION_ID, vss.SERIAL#,vss.action Action,vss.osuser OSUSER, vss.LOGON_TIME, vss.pr

oracle表空间表分区详解及oracle表分区查询使用方法_oracle

此文从以下几个方面来整理关于分区表的概念及操作:1.表空间及分区表的概念2.表分区的具体作用3.表分区的优缺点4.表分区的几种类型及操作方法5.对表分区的维护性操作.(1.) 表空间及分区表的概念表空间:是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间. 分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区.表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间

oracle执行cmd的实现方法_oracle

不过有一个简单的执行cmd命令方法: SQL> host net user User accounts for \\PC-ATQHJ4UG1SDA ---------------------------------------------------------------------------- __vmware_user__ admin Administrator ASPNET Guest IUSR_PC-ATQHJ4UG1SDA IWAM_PC-ATQHJ4UG1SDA SUPPORT_

解决Windows 7下安装Oracle 11g相关问题的方法_oracle

很多DBA目前还停留在Oracle 9i或者10g,究其原因有可能是Oracle 11g的价格问题.本文将为大家讲解在Windows 7下安装Oracle 11g,也希望大家能从中看到11g的一些新特点. 前不久卸载掉了自己的Windows Vista系统,装上了Windows7 旗舰版,在装机过程中也遇到了很多问题,有些问题是自己不曾遇到过的,但自己尝试着去解决,一步一步尝试着去努力.自己的不懈努力,也换回了成果.比如在装SQL Server 2005和Oracle 11g时就碰到了问题,在装

Oracle 中生成流水号的方法_oracle

思路: 通过一个流水号表,记录当前最大的流水号,以便下次取用.每次取号时,将流水号表更新成大的. 涉及的表: 流水号表hp_no: 字段 类型 TYPE_NAME VARCHAR2(100) START_NO VARCHAR2(100) CURRENT_NO VARCHAR2(100) 代码: 1)通过函数得到最大值. 有三个参数, 第一个参数是类型,便于得到不同的流水号. 第二个参数是前缀,用于在流水号前边放置特别的字符. 第三个参数是生成的流水号长度. 代码 CREATE OR REPLAC

Oracle对于死锁的处理方法_oracle

Oracle数据库出现死锁的时候可以按照以下处理步骤加以解决: 第一步:尝试在sqlplus中通过sql命令进行删除,如果能够删除成功,则万事大吉!但通常情况下,出现死锁时,想通过命令行或者通过Oracle的管理工具删除有死锁的session,oracle只会将该session标记为killed,但无法清除掉,往往需要通过第二步在操作系统层级进行删除! Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0 Connected as