oracle 合并中文,Oracle中合并字符串总结

Oracle中合并字符串总结

在数据库中经常要合并字符串,而合并字符串的方法有很多,现在总结如下:

--创建会话级临时表

create global temporary table TMPA

(

ID   INTEGER,

NAME VARCHAR2(10)

)

on commit preserve rows;

--插入记录

insert into tmpa select 1,'aa' from dual;

insert into tmpa select 1,'bb' from dual;

insert into tmpa select 1,'cc' from dual;

insert into tmpa select 2,'dd' from dual;

insert into tmpa select 2,'ee' from dual;

insert into tmpa select 3,'ff' from dual;

commit;

--1、sys_conect_by_path方法

select id,max(ltrim(sys_connect_by_path(name,','),',')) as group_name

from

(

select a.*,row_number()over(partition by id order by name) as row_num

from tmpa a

) a

group by id

start with row_num=1

connect by prior id=id and prior row_num= row_num-1

--2、wm_concat方法

select id,wm_concat(name) as group_name from tmpa

group by id;

--3、自定义函数法

--定义函数

create function group_concat(vid number)

return varchar2

as

vResult varchar2(100);

begin

for cur in (select name from tmpa where id=vid) loop

vResult := vResult||cur.name;

end loop;

return vResult;

end;

--查询

select id,group_concat(id) as group_name from tmpa

group by id;

--查询的结果

ID GROUP_NAME

1  aa,bb,cc

2  dd,ee

3  ff

相关文档:

oracle表空间操作详解

1

2

3作者:   来源:    更新日期:2006-01-04

5

6

7建立表空间

8

9CREATE TABLESPACE data01

10DATAFILE '/ora ......

declare

sqlstring varchar2(100);

emprow emp_bak%rowtype;

myno emp_bak.empno%type;

begin

--sqlstring:='create table emp_bak as select * from emp';

sqlstring:='select * from emp_bak where empno=:myno and sal>:mysal';

myno:='&请输入员工编号';

--动态SQ ......

GROUPING函数可以接受一列,返回0或者1。如果列值为空,那么GROUPING()返回1;如果列值非空,那么返回0。GROUPING只能在使用ROLLUP或CUBE的查询中使用。当需要在返回空值的地方显示某个值时,GROUPING()就非常有用。

关于ROLLUP和CUBE函数的使用,请参见我的另一篇文章。

http://blog.csdn.net/wh62592855/archive/2009/1 ......

ORACLE SQL性能优化

ORACLE SQL性能优化系列 (一)

1. 选用适合的ORACLE优化器

ORACLE的优化器共有3种:

a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性)

设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQ ......

从oracle 9i 开始,提供了一个叫做“管道化表函数”的概念,可以利用管道化来返回表函数。

但这种类型的函数,必须返回一个集合类型,且标明 pipelined以及不能返回具体变量,而是以一个空 return 返回!

这个函数中,通过 pipe row () 语句来送出要返回的表中的每一行

在调用这个函数的时候,通过 table() 关� ......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值