我查询出来的数据是这样的
field1 field2 field2
1201 02 84777939.9
1201 05 6753534.3
1201 08 15551376.06
我想将数据变成如下样式(field2中的数据项变为字段列)
field1 field_02 field_05 field_08
1201 84777939.9 6753534.3 15551376.06
该怎么用pl/sql来实现呢?
field1 field2 field2
1201 02 84777939.9
1201 05 6753534.3
1201 08 15551376.06
我想将数据变成如下样式(field2中的数据项变为字段列)
field1 field_02 field_05 field_08
1201 84777939.9 6753534.3 15551376.06
该怎么用pl/sql来实现呢?
解决方案 »
- 如何使用oracle SQL语句查询某一字段的类型,要求能支持输出这种:varchar2(4000 char) 类型的?
- oracle 8.0.5下的存储过程出现错误
- 100分求一个存储过程,急!
- 在oracal中的number数据类型,在sql中是否有相应的数据类型相对应
- 在储存过程中执行创建表的脚本出错,不知怎么回事!!!
- 一条SQL语句中包含多个INSERT INTO语句,要如何连接才是正确结束????
- 数据库shutdown时提示“仍有dispatcher,不能关闭数据库”,什么原因?
- 谁能解决这个问题?谢谢了!
- 懂Oracle的SQL语句的请帮忙:
- 写了个 insert触发器不起作用
- 请教一个两结构基本相同的表的组合查询
- 数据查询
max(decode(field2,'02','field_02')) field_02,
max(decode(field2,'05','field_05')) field_05,
max(decode(field2,'08','field_08')) field_08
from t
group by field1;
max(decode(field2,'02',field3)) field_02,
max(decode(field2,'05',field3)) field_05,
max(decode(field2,'08',field3)) field_08
from t
group by field1;
--->field1 field2 field3
之后:
select y.field1,
sum(y.field_02) as field_02,sum(y.field_05) as field_05,
sum(y.field_08) as field_08
from
(
select x.field1,
decode(x.field2,'02',x.field3 ) as field_02,decode(x.field2,'05',x.field3 ) as field_05,
decode(x.field2,'08',x.field3 ) as field_08
from 表 x
) ygroup by y.field1
我查询出的二个结果集分别为:
结果集1:
field1 field2 field3
1201 02 11
1201 05 21
结果集2:
field1 field2 field3
1201 02 12
1201 05 22
现在要将这二个结果集合并,并将数据显示为:
field1 field_02_01 field_02_02 field_05_01 field_05_02
1201 11 12 21 22
SELECT SWJGZZJGDM,
max(decode(SZ1,'02',RKJE)) f_02_1,
max(decode(SZ2,'02',RKJE)) f_02_2,
max(decode(SZ3,'02',RKJE)) f_02_3,
max(decode(SZ1,'05',RKJE)) f_05_1,
max(decode(SZ2,'05',RKJE)) f_05_2,
max(decode(SZ3,'05',RKJE)) f_05_3,
max(decode(SZ1,'08',RKJE)) f_08_1,
max(decode(SZ2,'08',RKJE)) f_08_2,
max(decode(SZ3,'08',RKJE)) f_08_3,
max(decode(SZ1,'10',RKJE)) f_10_1,
max(decode(SZ2,'10',RKJE)) f_10_2,
max(decode(SZ3,'10',RKJE)) f_10_3,
max(decode(SZ1,'11',RKJE)) f_11_1,
max(decode(SZ2,'11',RKJE)) f_11_2,
max(decode(SZ3,'11',RKJE)) f_11_3,
max(decode(SZ1,'12',RKJE)) f_12_1,
max(decode(SZ2,'12',RKJE)) f_12_2,
max(decode(SZ3,'12',RKJE)) f_12_3,
max(decode(SZ1,'13',RKJE)) f_13_1,
max(decode(SZ2,'13',RKJE)) f_13_2,
max(decode(SZ3,'13',RKJE)) f_13_3,
max(decode(SZ1,'14',RKJE)) f_14_1,
max(decode(SZ2,'14',RKJE)) f_14_2,
max(decode(SZ3,'14',RKJE)) f_14_3,
max(decode(SZ1,'15',RKJE)) f_15_1,
max(decode(SZ2,'15',RKJE)) f_15_2,
max(decode(SZ3,'15',RKJE)) f_15_3,
max(decode(SZ1,'16',RKJE)) f_16_1,
max(decode(SZ2,'16',RKJE)) f_16_2,
max(decode(SZ3,'16',RKJE)) f_16_3,
max(decode(SZ1,'17',RKJE)) f_17_1,
max(decode(SZ2,'17',RKJE)) f_17_2,
max(decode(SZ3,'17',RKJE)) f_17_3,
max(decode(SZ1,'18',RKJE)) f_18_1,
max(decode(SZ2,'18',RKJE)) f_18_2,
max(decode(SZ3,'18',RKJE)) f_18_3,
max(decode(SZ1,'19',RKJE)) f_19_1,
max(decode(SZ2,'19',RKJE)) f_19_2,
max(decode(SZ3,'19',RKJE)) f_19_3,
max(decode(SZ1,'20',RKJE)) f_20_1,
max(decode(SZ2,'20',RKJE)) f_20_2,
max(decode(SZ3,'20',RKJE)) f_20_3,
max(decode(SZ1,'21',RKJE)) f_21_1,
max(decode(SZ2,'21',RKJE)) f_21_2,
max(decode(SZ3,'21',RKJE)) f_21_3,
max(decode(SZ1,'30',RKJE)) f_30_1,
max(decode(SZ2,'30',RKJE)) f_30_2,
max(decode(SZ3,'30',RKJE)) f_30_3,
max(decode(SZ1,'51',RKJE)) f_51_1,
max(decode(SZ2,'51',RKJE)) f_51_2,
max(decode(SZ3,'51',RKJE)) f_51_3,
max(decode(SZ1,'52',RKJE)) f_52_1,
max(decode(SZ2,'52',RKJE)) f_52_2,
max(decode(SZ3,'52',RKJE)) f_52_3,
max(decode(SZ1,'53',RKJE)) f_53_1,
max(decode(SZ2,'53',RKJE)) f_53_2,
max(decode(SZ3,'53',RKJE)) f_53_3,
max(decode(SZ1,'71',RKJE)) f_71_1,
max(decode(SZ2,'71',RKJE)) f_71_2,
max(decode(SZ3,'71',RKJE)) f_71_3,
max(decode(SZ1,'72',RKJE)) f_72_1,
max(decode(SZ2,'72',RKJE)) f_72_2,
max(decode(SZ3,'72',RKJE)) f_72_3,
max(decode(SZ1,'73',RKJE)) f_73_1,
max(decode(SZ2,'73',RKJE)) f_73_2,
max(decode(SZ3,'73',RKJE)) f_73_3,
max(decode(SZ1,'74',RKJE)) f_74_1,
max(decode(SZ2,'74',RKJE)) f_74_2,
max(decode(SZ3,'74',RKJE)) f_74_3,
max(decode(SZ1,'75',RKJE)) f_75_1,
max(decode(SZ2,'75',RKJE)) f_75_2,
max(decode(SZ3,'75',RKJE)) f_75_3,
max(decode(SZ1,'76',RKJE)) f_76_1,
max(decode(SZ2,'76',RKJE)) f_76_2,
max(decode(SZ3,'76',RKJE)) f_76_3,
max(decode(SZ1,'88',RKJE)) f_88_1,
max(decode(SZ2,'88',RKJE)) f_88_2,
max(decode(SZ3,'88',RKJE)) f_88_3,
max(decode(SZ1,'89',RKJE)) f_89_1,
max(decode(SZ2,'89',RKJE)) f_89_2,
max(decode(SZ3,'89',RKJE)) f_89_3
FROM
(
SELECT SZDM SZ1,
SWJGZZJGDM,
SUM(RKJE) RKJE
FROM SBDB.SB_JL_SBJKZB SBJKZB
WHERE SBRQ >=TO_DATE('2005-06-01','YYYY-MM-DD')
GROUP BY SZDM,SWJGZZJGDM
)
A
FULL OUTER JOIN
(
SELECT SZDM SZ2,
SWJGZZJGDM,
SUM(RKJE) RKJE
FROM SBDB.SB_JL_SBJKZB SBJKZB
WHERE SBRQ >=TO_DATE('2004-06-01','YYYY-MM-DD') AND SBRQ <=TO_DATE('2004-06-30','YYYY-MM-DD')
GROUP BY SZDM,SWJGZZJGDM
)
B
ON B.SZ2=A.SZ1
FULL OUTER JOIN
(
SELECT SZDM SZ3,
SWJGZZJGDM,
SUM(RKJE) RKJE
FROM SBDB.SB_JL_SBJKZB SBJKZB
WHERE SBRQ >=TO_DATE('2005-01-01','YYYY-MM-DD') AND SBRQ <=TO_DATE('2005-12-31','YYYY-MM-DD')
GROUP BY SZDM,SWJGZZJGDM
)
C
ON C.SZ3=A.SZ1GROUP BY SWJGZZJGDM
实体化视图常用来存放预计算的合计数据,如汇总和平均。实体化视图
也可以是主表的一个完整副本。建立实体化视图的语句(此处只列出常用选项):
CREATE MATERILIZED VIEW [SCHEMA.] 实体化视图名
[TABLESPACE] [STORAGE]
[REFRESH [FAST|FORCE|COMPLETE]]
[START WITH 日期] [NEXT 日期]
[FOR UPDATE]
AS 子查询例:建立物化视图
Create Materialized View AA
Refresh Complete
As Select * From AA.TABLE_NAME;手工刷新
EXEC DBMS_REFRESH.REFRESH('AA');
还有自动刷新
即定义在某一时间点刷新。如:
Create Materialized View TEST
Refresh Complete
Start With Sysdate+10/24 Next Trunc(Sysdate,’Day’)+10/24
As Select * FROM TABLE;