oracle sql多条数据合并成一条

在Oracle11g中只知道两种情况:


1.wmsys.wm_concat(to_char())  列必须是chart类型,如果不是需要转换。

2.XMLAGG(XMLPARSE(CONTENT 字段A || ',' WELLFORMED)).GETCLOBVAL()   注:A.最后多逗号( 使用 RTRIM函数去掉最后多余逗号。即RTRIM(XMLAGG(XMLPARSE(CONTENT to_char(字段A) || ',' WELLFORMED)).GETCLOBVAL(),','),但是RTRIM是有长度限制的)  B."字段A"必须是字符类型 可以使用to_char()转换类型 

例如:

SELECT XMLAGG(XMLPARSE(CONTENT 字段A || ',' WELLFORMED)).GETCLOBVAL()
FROM   表;


两种差异:

  性能:2比1快

  方式:使用方式一致

  注意:1中字符串长度有限制,大概2000字符吧;并且2中最后多一个“逗号”

共同点:两者都使用逗号分隔

你可能感兴趣的:(数据库,Oracle)