Oracle中使用SQL将查询的结果以逗号分隔并转成varchar2 字符串类型

在Oracle 11G以下版本中,如果想要将查询的结果以逗号分隔并转化成字符串,那么可以通过如下操作。

主要用到两个函数,

  • wm_concat(字段)
    • 返回CLOB 类型对象
  • dbms_lob.substr(字段,长度,起始位置)
    • 将CLOB类型对象截取后转换成字符串

示例如下:
假设查询结果

SELECT
ID
FROM 
T_USER

查询结果为

1
2
3
4
5
6
7
8
9
10
11
12

想列转行返回这样的结果:

1,2,3,4,5,6,7,8,9,10,11,12

那么可以修改SQL 如下即可:

SELECT
dbms_lob.substr(wm_concat(ID),4000,1)
FROM 
T_USER 

执行效果如下所示:

1,2,3,4,5,6,7,8,9,10,11,12

参考资料:

  • Oracle中将列查询结果多行逗号拼接成一个大字段
  • oracle数据库中使用sql将clob转化为字符串

你可能感兴趣的:(#,Oracle)