核桃博客  
网站性能、性能优化、性能测试、性能监控
日历
<2025年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789
统计
  • 随笔 - 0
  • 文章 - 11
  • 评论 - 0
  • 引用 - 0

导航

留言簿

随笔分类

文章档案

搜索

  •  

最新评论

 
作 者: 核桃博客 本文网址:http://www.hetaoblog.com/oracle-row-col-transition/ 本博客所有文章全部原创,欢迎转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 在写一些SQL的时候,有时候会有需求把行转换成列或者把列转换成行;接下来,核桃博客会对在Oracle中作行列转换的方法做一些介绍; 首先是行转换列,比如将N行转换成1列拼接成字符串,方法有很多,其中有一些比较复杂,但如果你是Oracle 10G以上,那么我觉得最简洁的方法就是使用wmsys.wm_concat函数,非常简单明了; 假设有表格如下定义 create table t_row_col_change (n number, str varchar2(5)); 先看下表格内容 SQL> select * from t_row_col_change; N STR ---------- -------------------- 1 a 1 b 1 c 2 d 2 e 3 f 已选择6行。 这时候,你可以用wmsys.wm_concat函数将所有的str行转换成1列,如下 SQL> select wmsys.wm_concat(str) from t_row_col_change; WMSYS.WM_CONCAT(STR) -------------------------------------------------------------------------------- a,b,c,d,e,f 或者,你也可以按照某一列来分组,分别执行每组上的行转列,如下: SQL> select n, wmsys.wm_concat(str) c from t_row_col_change group by n; N C ---------- -------------------- 1 a,b,c 2 d,e 3 f
文章来源:http://www.hetaoblog.com/oracle-row-col-transition/
posted on 2010-08-15 22:30 核桃博客 阅读(83) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 
 
Copyright © 核桃博客 Powered by: 博客园 模板提供:沪江博客