sql高手请进来,请问如何将查询的一列数据拼接用逗号隔开显示成一条记录?

huaiyan 2011-11-24 11:00:35
请问如何将查询的一列数据拼接用逗号隔开显示成一条记录?
...全文
1308 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huaiyan 2011-11-24
  • 打赏
  • 举报
回复
大侠呀! 神人也!
[Quote=引用 3 楼 cosio 的回复:]

SQL code

WITH t AS
(
SELECT 1322049461 a FROM dual
UNION ALL
SELECT 1322041123 FROM dual
UNION ALL
SELECT 1322049461 FROM dual
)
--9i
SELECT max(substr(sys_connect_by_path(a,','),2)) b
FROM
……
[/Quote]
huaiyan 2011-11-24
  • 打赏
  • 举报
回复
--9i 这个可以用 , 谢谢啦!
[Quote=引用 3 楼 cosio 的回复:]

SQL code

WITH t AS
(
SELECT 1322049461 a FROM dual
UNION ALL
SELECT 1322041123 FROM dual
UNION ALL
SELECT 1322049461 FROM dual
)
--9i
SELECT max(substr(sys_connect_by_path(a,','),2)) b
FROM
……
[/Quote]
programmerxiaocai 2011-11-24
  • 打赏
  • 举报
回复
oracle 10g 就简单了 用Wm_concat()函数。
huaiyan 2011-11-24
  • 打赏
  • 举报
回复
我想要的结果是最后返回一行数据,数据的内容的这一列的数据用逗号隔开显示!
[Quote=引用 2 楼 cosio 的回复:]

SQL code
SELECT b FROM
(
SELECT substr(a,LEVEL,1) b FROM
(
SELECT '1,2,3,4'||',' a FROM dual
) CONNECT BY LEVEL<length(a)
)WHERE b<>','

--result:
1
2
3
4
[/Quote]
cosio 2011-11-24
  • 打赏
  • 举报
回复

WITH t AS
(
SELECT 1322049461 a FROM dual
UNION ALL
SELECT 1322041123 FROM dual
UNION ALL
SELECT 1322049461 FROM dual
)
--9i
SELECT max(substr(sys_connect_by_path(a,','),2)) b
FROM
(SELECT a,row_number() over(ORDER by a) rn FROM t)
START WITH rn=1 CONNECT BY rn-1=PRIOR rn

--10g
select wm_concat(a,',') from t

cosio 2011-11-24
  • 打赏
  • 举报
回复
SELECT b FROM 
(
SELECT substr(a,LEVEL,1) b FROM
(
SELECT '1,2,3,4'||',' a FROM dual
) CONNECT BY LEVEL<length(a)
)WHERE b<>','

--result:
1
2
3
4
huaiyan 2011-11-24
  • 打赏
  • 举报
回复
CREATEDTIME
--------------
1322049461
1322041123
1322049461
显示为 1322049461,1322041123 ,1322049461

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧