您的当前位置:首页正文

oracle wm_concat(column)函数的使用

2023-11-09 来源:画鸵萌宠网

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              葡萄,香蕉

---------------------------------

  1. select u_id, wmsys.wm_concat(goods) goods_sum  
  2.  
  3. from shopping  
  4.  
  5. group by u_id  

想要的结果2:

--------------------------------

u_id          goods_sum

____________________

1              苹果(2斤),西瓜(4斤),橘子(3斤)

2              梨子(5斤)

3              葡萄(1斤),香蕉(1斤)

---------------------------------

使用oracle wm_concat(column)函数实现:

  1. select u_id, wmsys.wm_concat(goods || ‘(‘ || num || ‘斤)‘ ) goods_sum  
  2.  
  3. from shopping  
  4.  
  5. group by u_id

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版本中已经失效;

Top