欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle 表里面的数据存储转行了,如何用sql把它转换成一行存储

更新时间: 2014-01-05 02:14:00 责任编辑: Author_N1

 

oracle 表里面的数据存储转行了,怎么用SQL把它转换成一行存储
譬如表ABC里面有个字段REMARK的vaule是:
一、收信人以归档
二、放款前不少于三万元

要把它转成一行:
一、收信人以归档二、放款前不少于三万元
--参考方法--
行转列
网上到处是http://blog.csdn.net/you_tube/article/details/4059251
--参考方法--
感觉你不是想进行行转列吧,你是想对多行字段进行拼接?
如果是进行字段拼接给你一下列子:
如果支持wm_concat函数(同ID进行拼接)
SELECT T.ID, wm_concat(t.mark) FROM ABC T GROUP by T.ID;


如果不支持:
SELECT A.ID,
       ltrim(MAX(REPLACE(SYS_CONNECT_BY_PATH(MARK, '—'), '—', ',')), ',')
  FROM (SELECT T.*,
               ROW_NUMBER() OVER(PARTITION BY T.ID ORDER BY T.MARK) AS RN
          FROM ABC T) A
 START WITH RN = 1
CONNECT BY PRIOR RN = RN - 1
       AND PRIOR ID = ID
 GROUP BY ID;

--参考方法--
我理解楼主的意思是这是一行的数据,中间存在回车符
如果是这样的话,尝试replace(REMARK,chr(10),'、')
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:14:00
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7282/
本文WWW.DOC100.NET DOC100.NET版权所有。