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(字段名,原字符,‘,‘)。这个函数使用之前必须先建立一个树,否则无用。

三、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列合并

时间: 2024-11-10 11:19:26

oracle列合并的相关文章

ORACLE列值合併

合併列值最通用的方法就是寫一個自定義函數去實現,這裏介紹的是其他方法. 在SQL Server中合併列值可以使用For Xml Path,在Oracle中則可以使用wm_concat 或 ListAgg. 準備數據: CREATE TABLE MyTest(xType NUMBER,City nvarchar2(200)); / INSERT INTO MyTest(xType,City) SELECT 1,N'北京' FROM dual UNION ALL SELECT 1,N'上海' FRO

TSQL--按某字段列分组,在将各组中某列合并成一行

鉴于群里很多同事在问这个问题,我简单写个Demo,希望对初学者有帮助! 无真相,无解说,不解释,直接上Code! --================================================== --示例代码,仅供参考 --按照object_id分组,将同一组的name列的值合并在一起 SELECT OBJECT_NAME(T1.object_id) AS ObjectName , ( SELECT T2.name + ',' FROM sys.all_columns T

GRIDVIEW多行多列合并单元格(合并列)

GitHub项目地址:https://github.com/mingceng/merge-gridviewcell 两篇文章:  GridView多行多列合并单元格(完整代码和例子)和 GridView多行多列合并单元格(指定列合并).今天继续再添加一些功能,首先看下图: 左边是原始数据的显示,右边是应用合并列之后的效果. 从图中可以看到,二级指标有两列,有的行中两列的内容一样,有的则不一样,如果实现如右图所示,看起来效果会更好一些.下面就着手实现这个功能,我的实现原理很简单,就是遍历GridV

Oracle列自增实现(2)-Identity Columns in Oracle Database 12c Release 1 (12.1)

Oracle列自增-Identity Columns in Oracle Database 12c Release 1 (12.1) 在ORACLE 12C以前的版本中,如果要实现列自增长,需要通过序列+触发器实现,到了12C ORACLE 引进了Identity Columns新特性,从而实现了列自增长功能. 一.Identity Columns使用语法 GENERATED [ ALWAYS | BY DEFAULT [ ON NULL ] ] AS IDENTITY [ ( identity

JQGrid单元格合并及表头列合并

合并单元格代码示例 表头列合并代码示例 效果图

DataGridView合并单元格(多行多列合并)

一.点击在拖入的显示控件(TreeList)右上方的箭头,在Treelist任务中选择数据源,添加项目数据源,依次选择数据库.数据集,新建连接,浏览选择数据库(*.mdb),依次点击 下一步,选择“表”,完成. 二.具体代码如下: #region"合并单元格(多行多列)" //需要(行.列)合并的所有列标题名 List<String> colsHeaderText_V = new List<String>(); List<String> colsHe

按列合并结果集

原文 按列合并结果集 select c.student_id,c.chinese_name, sum(a.absence) absence_total,sum(a.credit) get_course_total,sum(a.coursecredit) reg_course_total ,(select credit from sm_grade_credit where grade=11) from sm_course_student a,sm_courses b,sm_students c w

Linux Bash Shell字符串抽取、按列合并和格式化输出

需求来源:默认的ip link show命令输出会输出系统中已经存在的网卡(包括虚拟网卡)的名称.MAC地址.端口状态等信息,但也夹杂着一些无用的信息,此次的字符串操作就是将这些信息中的网卡名称.MAC地址.端口状态取出来. 涉及到的知识包括:常用的字符串的处理工具awk.sed.cut等的用法,paste按列合并,printf格式化输出等. 例如原输出信息为: 现在要把上图中红色框内的信息全部提取出来,但难点在于ip link show命令的默认输出会将MAC地址打印在下一行,导致普通的awk

基于WebForm+EasyUI的业务管理系统形成之旅 -- ParamQueryGrid行、列合并(Ⅸ)

上篇<基于WebForm+EasyUI的业务管理系统形成之旅 -- 施工计划查询(Ⅷ)>,主要介绍通过报表工具数据钻取,获取施工计划详细信息. 这篇我们看看ParamQueryGrid[行合并]与[列合并] 一.[列合并]效果 以编号配置界面为例,如下图所示. 设置表格列合并,代码如下. 1 /**设置表格列合并 2 colModel:列 3 ,startNumber:开始列 4 ,numberOfColumns:从开始列开始,合并列数量 5 ,titleText:合并列标题 6 **/ 7