oracle数据库中,使用wm_concat(column)函数,可以进行字段合并,下文对该功能的实现方法作了详细的介绍,供您参考学习。
oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle wm_concat(column)函数实现字段合并,如果您对oracle wm_concat(column)函数使用方面感兴趣的话,不妨一看。
shopping:
-----------------------------------------
u_id goods num
------------------------------------------
1 苹果 2
2 梨子 5
1 西瓜 4
3 葡萄 1
3 香蕉 1
1 橘子 3
=======================
想要的结果为:
--------------------------------
u_id goods_sum
____________________
1 苹果,西瓜,橘子
2 梨子
3 葡萄,香蕉
---------------------------------
想要的结果2:
--------------------------------
u_id goods_sum
____________________
1 苹果(2斤),西瓜(4斤),橘子(3斤)
2 梨子(5斤)
3 葡萄(1斤),香蕉(1斤)
---------------------------------
使用oracle wm_concat(column)函数实现:
oracle wm_concat(column)函数的使用
标签:
小编还为您整理了以下内容,可能对您也有帮助:
oracle的wm_concat()函数
wm_concat(列名)这个神奇的函数,他可以把列值用“,”分隔开,而且是显示成一行,下面来看一下这个函数是如何用的。
表明:test
id names num
1 香蕉 3
2 苹果 2
3 葡萄 5
1 橘子 4
3 西瓜 6
想要实现的方式为:
id names
1 香蕉(3斤),橘子(4斤)
2 苹果(2斤)
3 葡萄(5斤),西瓜(6斤)
使用oracle的wm_concat(column)函数实现
select id,wm_concat(names || '(' || num ||'斤)')names from test group by id;
oracle的wm_concat()函数
wm_concat(列名)这个神奇的函数,他可以把列值用“,”分隔开,而且是显示成一行,下面来看一下这个函数是如何用的。
表明:test
id names num
1 香蕉 3
2 苹果 2
3 葡萄 5
1 橘子 4
3 西瓜 6
想要实现的方式为:
id names
1 香蕉(3斤),橘子(4斤)
2 苹果(2斤)
3 葡萄(5斤),西瓜(6斤)
使用oracle的wm_concat(column)函数实现
select id,wm_concat(names || '(' || num ||'斤)')names from test group by id;
oracle concat用法
concat()是拼接函数,将两个字符串拼接在一起
select concat(first_name,last_name) from employees
|| 是字符串连接符,用与连接字符串
select first_name||last_name from employees
两者很相似但也有不同的地方
||可以在字符串中间添加自定义的字符,而concat不行
扩展资料:
concat ()方法用于连接两个或多个数组。
定义用法
The concat() method is used to join two or more arrays。
使用concat()方法可用来将两个或多个数组结合起来。
This method does not change the existing arrays, it only returns a copy of the joined arrays。
这个方法不会改变现存的数组,它只返回了所结合数组的一份拷贝。
在Oracle数据库中,可以使用||代替concat(),并且||可以同时连接多个字符串。
在Sqlserver数据库中,可以使用+代替concat(),+也可以同时连接多个字符串。
参考资料来源:百度百科-concat()
在oracle9中如何实现wm_concat的功能
方法一,使用connect by +sys_connect_by_path :
--测试数据
create table test(col varchar2(10));
insert into test values('a');
insert into test values('b');
insert into test values('c');
--SQL语句:
select ltrim(sys_connect_by_path(col, ','), ',')
from (select col, row_number() over(order by rownum) rn from test t)
where connect_by_isleaf = 1
start with rn = 1
connect by rn = prior rn + 1;
方法二,使用xmltype:
select dbms_lob.substr(rtrim(xmlagg(xmlparse(content col || ',' wellformed))
.getclobval(),
','),
4000,
1)
from test;
另外在10,11版本中也不建议使用wm_concat,这个函数属于非公开函数,在12c版本中已经失效;