oracle 10g wmsys.wm_concat行列转换函数的使用:

首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用
 
1、把结果按分组用逗号分割,以一行打印出来。(如果需要换其它的可以用replace函数:replace(wm_concat(name),',','|'))
select t.u_id,
       wmsys.wm_concat(t.goods),
       wmsys.wm_concat(t.goods || '(' || t.u_id || '斤)')
  from tb_index t
 group by t.u_id;
 
2、over(partition by t.u_id)用法:
  select t.u_id,  www.2cto.com  
       wmsys.wm_concat(t.goods || '(' || t.u_id || '斤)') over(partition by t.u_id)
  from tb_index t;
 

 
3、over(order by t.u_id)用法:
  select t.u_id,
       wmsys.wm_concat(t.goods || '(' || t.u_id || '斤)') over(partition by t.u_id)
  from tb_index t;
 
4、懒人扩展用法:(大表很多字段我需要串起来)
select 'select '|| wm_concat('t.'||column_name) || ' from TB_INDEX t' from user_tab_columns where table_name='TB_INDEX';
 
sys_connect_by_path(columnname, seperator) :用来构造树路径的,所以需要和connect by一起来用。
sys_connect_by_path 函数主要作用是可以把一个父节点下的所有子节点通过某个字符进行区分,然后连接在一个列中显示 

 
select t.areaid,
       t.parentareaid,
       t.areaname,
       sys_connect_by_path(t.areaname, '-') area 
  from tb_index t
 start with t.areaname = '中国'
connect by t.parentareaid = prior t.areaid;
   www.2cto.com  
 
listagg:11gr2还新增了一个分析函数LISTAGG,这个函数的功能实现字符串的连接
create table t (id number, name varchar2(30), type varchar2(20));
insert into t
  select rownum, object_name, object_type from dba_objects;
select listagg(name, ',') within group(order by id)
  from t
 where rownum < 10;
select type, listagg(name, ',') within group(order by id) name
 from t
where type in ('DIRECTORY', 'JAVA SOURCE', 'SCHEDULE')
group by type;
select name,
       listagg(name, ',') within group(order by id) over(partition by type) s_name
  from t
 where type in ('DIRECTORY', 'JAVA SOURCE', 'SCHEDULE');

oracle行列转换函数的使用的更多相关文章

  1. oracle 行列转换函数之WM_CONCAT和LISTAGG的使用(一)

    一.wm_concat函数 wm_concat能够实现同样的功能,但是有时在11g中使用需要用to_char()进行转换,否则会出现不兼容现象(WMSYS.WM_CONCAT: 依赖WMSYS 用户, ...

  2. Oracle 行列转换函数pivot、unpivot的使用(二)

    一.行转列pivot 关键函数pivot,其用法如下 pivot(聚合函数 for 列名 in(类型)) select * from table_name pivot(max(column_name) ...

  3. Oracle行列转换

    一.建表与插入数据 1.1.建表 create table kecheng ( id NUMBER, name ), course ), score NUMBER ); insert into kec ...

  4. oracle 行列转换

    oracle 行列转换列名如果是数字,用双引号包住  如下: --  建表 create table workinfo(wid integer primary key,sid integer ,CON ...

  5. Oracle 大小写转换函数

    Oracle 大小写转换函数 转大写UPPER 转小写LOWER 测试: select UPPER('Test') as u from dual; select LOWER('Test') as l ...

  6. Oracle行列转换的思考与总结

    最近几天一直在弄Oracle-SQL的问题,涉及到了一些平时没有用到的东西,也因此而在这里郁闷了好久.现在问题得到了解决虽说不算完美.但是还是和大家一起分享一下. 行列转换之一:sum(case wh ...

  7. oracle行列转换总结-转载自ITPUB

    原贴地址:http://www.itpub.net/thread-1017026-1-1.html 谢谢原贴大人 最近论坛很多人提的问题都与行列转换有关系,所以我对行列转换的相关知识做了一个总结, 希 ...

  8. Oracle 行列转换总结

    行列转换包括以下六种情况:*列转行*行转列*多列转换成字符串*多行转换成字符串*字符串转换成多列*字符串转换成多行 下面分别进行举例介绍. 首先声明一点,有些例子需要如下10g及以后才有的知识:a.掌 ...

  9. KingbaseES 行列转换函数

    关键字:    行专列,列转行, pivot, unpivot 行列转换是在数据分析中经常用到的一项功能,KingbaseES从V8R6C3B0071版本开始通过扩展插件(kdb_utils_func ...

随机推荐

  1. R(三): R包原理及安装

    包(package)是多个函数的集合,常作为分享代码的基本单元,代码封装成包可以方便其他用户使用.越来越多的R包正在由世界上不同的人所创建并分发,这些分发的R包,可以从CRAN 或 github 上获 ...

  2. Android 隐藏Fragment

    1.隐藏Fragment FragmentManager fManager = getFragmentManager(); fManager.beginTransaction() .setCustom ...

  3. Jquery实现购物车物品数量的加减特效

    今天网友翠儿在用Jquery实现购物车物品数量的加减特效的时候遇到问题来问我,我后来帮她解决了这个Jquery特效,现在把它整理出来分享给大家用,虽然功能比较简单,但是很实用. 主要包括了以下功能: ...

  4. (转)【Android测试工具】03. ApkTool在Mac上的安装和使用(2.0版本)

    http://blog.csdn.net/wirelessqa/article/details/8997168 http://code.google.com/p/android-apktool/dow ...

  5. 【jmeter】JMeter函数学习

    JMeter函数是一些能够转化在测试树中取样器或者其他配置元件的域的特殊值.一个函数的调用就像这样:${_functionName(var1,var2,var3)},-functionName匹配函数 ...

  6. php xdebug xampp eclipse

    Eclipse配置 一:配置workspace 打开Eclipse for PHP Developers,需要设置workspace,这个必须设置到C:\xampp\htdocs目录,否则待会无法进行 ...

  7. Linux下编译LibCURL

    编译环境 操作系统: Red Hat Enterprise Linux Server release 5.4 64-bit 编译工具: gcc (GCC) 4.1.2 20080704 (Red Ha ...

  8. php接二进制文件

    PHP默认只识别application/x-www.form-urlencoded标准的数据类型. 因此,对型如text/xml 或者 soap 或者 application/octet-stream ...

  9. HDU2490 parade

    题目大意:一个n+1行m+1列的表格,每个格子两个数w和c,表示经过该格子的happy和体力消耗值tireness.现在从最下面任意处开始,可以向左向右向上走.但不能向下.每个格子不能经过两次.在每一 ...

  10. Redis内存使用优化与存储(转)

    Redis常用数据类型 Redis最为常用的数据类型主要有以下五种: String Hash List Set Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部 ...