在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
参考资料: