设为首页 加入收藏

TOP

oracle行转列(二)
2014-11-24 02:44:52 来源: 作者: 【 】 浏览:1
Tags:oracle
除表tt
drop table tt;
/Top
8 楼wzs_wzs123(蓝天百云)回复于 2004-11-04 12:36:02 得分 0
yjdn(无尽天空) ,兄弟,给我一个能够直接运行的SQl语句,我对ORacle不太熟Top
9 楼yjdn(文刀无尽)回复于 2004-11-04 12:46:59 得分 50
MSSQL语句?
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+',sum(case km when '''+rtrim(km)+''' then cj else 0 end) as ['+rtrim(km)+']'
from test
group by km
exec('select name'+@sql+' from test group by name')


--那你的建表语句还得改一下,把number改成int



col1 col2
-----------------
0001 Tom
0001 Jack
0001 Mike
0002 Kate
0002 Rose
0002 Fene

如何用一条SQL语句得到如下结果:
col1 col2
-----------------
0001 Tom,Jack,Mike
0002 Kate,Rose,Fene



创建自定义函数:
create or replace function f_ename(jobno in varchar2)
return varchar2 is

str_return varchar2(200);
cursor c_ename(v_jobno varchar2) is select ename from emp where job=v_jobno;
begin
for str_temp in c_ename(jobno) loop
str_return:=str_return||str_temp.ename;
end loop;
return str_return;
end;
/

调用:
select job,f_ename(job) from (select distinct job from emp);

作者“jadewoo”

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇DB2 connect to database连接数据.. 下一篇Oracle数据库ORA-01940: 无法删除..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: