Chinaunix首页 | 论坛 | 博客
  • 博客访问: 723580
  • 博文数量: 94
  • 博客积分: 1937
  • 博客等级: 上尉
  • 技术积分: 1618
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-04 18:46
个人简介

专注数据库开发管理

文章分类

全部博文(94)

文章存档

2015年(1)

2014年(2)

2013年(19)

2012年(32)

2011年(10)

2010年(30)

分类: Oracle

2012-10-27 10:01:17

10g列改行函数wmsys.wm_concat:

-- 列改行

SQL> select replace(wmsys.wm_concat(table_name),',','*') from all_tables where rownum<=5;

 

REPLACE(WMSYS.WM_CONCAT(TABLE_

--------------------------------------------------------------------------------

ICOL$*IND$*COL$*CLU$*TAB$


11g中可用listagg,比10g的强大多了。

select listagg(id) within group(order by id) from t;

 

-- 换行

SQL> select 'abc'||chr(13)||'def'||chr(13)||'ghi' from dual;

 

'ABC'||CHR(13)||'DEF'||CHR(13)

------------------------------

abc

def

ghi


 

-- 显示小数整数为0时

SQL> select to_char(.0129,'fm9999990.9999') from dual;

 

TO_CHAR(.0129,'FM9999990.9999'

------------------------------

0.0129

 

不过需注意的是:listagg返回的是varchar型,而wmsys.wm_concat返回的是clob数据类型。

-- The End --

阅读(2988) | 评论(0) | 转发(0) |
0

上一篇:恢复SET UNUSED

下一篇:汉字转拼音

给主人留下些什么吧!~~