Oracle的 简单行转列
应个报表要求做个
时间 双色球, 胜负彩。。。。。
200905 销量 销量
200906 销量 销量
200907 销量 销量
200908 销量 销量
一个SQL 语句得到结果是:
f_yearmonth, lot_name,money
200905 双色球 50
200905 胜负彩 100
200906 双色球 60
200906 胜负彩 70
Select f_yearmonth,
Max(decode(f_lotname,'双色球',f_money,0)) As "双色球",
Max(decode(f_lotname,'福彩3D',f_money,0)) as "福彩3D",
Max(decode(f_lotname,'胜负彩',f_money,0)) as "胜负彩",
Max(decode(f_lotname,'时时彩',f_money,0)) as "时时彩",
Max(decode(f_lotname,'时时乐',f_money,0)) as "时时乐",
from
t_tmp_test_A
Group By f_yearmonth
Order By f_yearmonth
关键语句:
Max(decode(f_lotname,'双色球',f_money,0)) As "双色球",
Group By f_yearmonth
应为 按时间重组只有一条,并且只有一条数据: 200905 双色球 50
那么 用MAX取一条数据 就是50
decode 意思说 如果是‘双色球’ 取对应的f_money 并且放在 命名为 "双色球"的 列上。
很显然 这列是固定!
相关文档:
ROLLUP和CUBE语句。
Oracle的GROUP
BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP
BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。如果是GROUP BY
CUBE(A, B, C),则首先会对(A、B、C)进行GROUP
BY,然后依次是( ......
drop table tb_wjf_xh_dg100_50_tmp4 purge;
create table tb_wjf_xh_dg100_50_tmp4
(
servnumber varchar(11)
)
;
declare
vv_cusor_servnumber varchar2(32);
vv_cusor_lost_cnt & ......
oracle and sqlsever 常用数学函数对比
数学函数
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value ......
可以用Spotlight软件对数据库的运行状态进行监控。
当出现session锁时,我们要及时进行处理.
1. 查看哪些session锁:
SQL语句:select 'alter system kill session '''||sid||','||serial#||''';' from v$session where sid in (select sid from v$lock where block = 1);
SQL> select 'alter system kill sessio ......
刚刚接触ORACLE的人来说,从那里学,如何学,有那些工具可以使用,应该执行什么操作,一定回感到无助。所以在学习使用ORACLE之前,首先来安装一下ORACLE 10g,在来掌握其基本工具。俗话说的好:工欲善其事,必先利其器。我们开始吧!
首先将ORACLE 10g的安装光盘放入光驱,如果自动运行,一般会出现如图1安装界面:
图1
......