解决方案 »
- rowid比较怪问题
- exp oracle把库导出的各参数是什么意思?请高手帮忙解释下,多谢!
- A用户创建了个type,怎样授权B用户调用?
- 用ORACLE如何做 一个类似用友财务的余额表?就是最后一列余额显示让 期初余额 +借方-贷方
- 请高手帮助! multiple definition of `sqlca' 编译问题
- Oracle report - formate is TRF,请教
- oracle 中 net assistant无法启动什么原因
- 用sql语句如何把表中的一个字段从不能为空改为可为空?在线等。谢谢!
- 新手求ORACLE开发电子文档,最好是中文的,多谢!
- d6+ado+oracle 我采用的是ado直接连接数据源
- 高分求解:linux 4下如何安装oracle plm,安装agile之前需要安装那些软件
- 我DROP掉一张表后,为什么 USER_TAB_COLS视图没有更新呀?
2 case when t3.size_id in(select size_id from t3 where c_id=28)
3 then t3.value# else 'null' end as value#28,
4 case when t3.size_id in(select size_id from t3 where c_id=29)
5 then t3.value# else 'null' end as value#29
6 from t1,t2,t3
7 where t1.struct_id=t2.struct_id
8 and t2.size_id=t3.size_id
9 and t1.struct_id=1; STRUCT_ID STRUCT_NAM SIZE_ID KEY# VALUE#28 VALUE#29
---------- ---------- ---------- ---------- ---------- ----------
1 1# 1 11# aa0 null
1 1# 2 12# aa1 null
1 1# 3 13# null aa2--以下为我表里的测试数据
SQL> select * from t1; STRUCT_ID STRUCT_NAM
---------- ----------
1 1#
2 2#
3 3#SQL> select * from t2; SIZE_ID KEY# STRUCT_ID
---------- ---------- ----------
1 11# 1
2 12# 1
3 13# 1
4 14# 2
5 15# 2
6 16# 2已选择6行。SQL> select * from t3; SIZE_CID VALUE# SIZE_ID C_ID
---------- ---------- ---------- ----------
1 aa0 1 28
2 aa1 2 28
3 aa2 3 29
4 aa3 4 29SQL> select * from ccc; C_ID C_NAME
---------- ----------
28 cc1
29 cc2
30 cc3
31 cc4
--在语句里好像没用到ccc这张表
另外 我的t3表里内容没你多 c_id只有28和29两条记录 所以我的查询结果只有#VALUE28和#VALUE29两列 没有你要求的#VALUE30和#VALUE31两列 你照样子给select再添加上两个case语句列就可以了
结果在那个帖子已经回了,在copy一遍吧
--用过程吧,row_col
create or replace procedure row_col(
v_cirsor out sys_refcursor
) is
sqlstr varchar2(4000);
cursor mycursor is select ', sum(decode(car_id,'||car_id||',measure_value,0))'||'"'||car_id||'" ' c2 from 表 group by car_id;
r1 mycursor%rowtype;
begin
sqlstr :='select size_id ';
open mycursor;
loop
fetch mycursor into r1;
exit when mycursor%notfound;
sqlstr:=sqlstr || r1.c2;
end loop;
close mycursor;
sqlstr:=sqlstr||' from result3 group by size_id order by size_id ';
open v_cirsor for sqlstr;
end row_col;
根据你的数据,做了下测试,这个可以实现。