
|
标签:趣味/幽默 |
关于oracle存储过程的若干问题备忘
1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN
END 存储过程名字
2.SELECT INTO STATEMENT
3.IF 判断
4.while 循环
---------数学函数
1.绝对值
S:select abs(-1) value
O:select abs(-1)
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001)
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001)
4.取整(截取)
S:select cast(-1.002 as int)
O:select trunc(-1.002) value from dual
5.四舍五入
S:select round(1.23456,4) value
O:select round(1.23456,4) value from dual
6.e为底的幂
S:select Exp(1) value
O:select Exp(1) value from dual
INSERT INTO t_change_lc
SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100)
bal FROM dual CONNECT BY ROWNUM <= 4
UNION
SELECT '002' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100)
bal FROM dual CONNECT BY ROWNUM <= 4;
SELECT * FROM t_change_lc;
SELECT a.card_code,
SUM(decode(a.q, 1, a.bal, 0)) q1,
SUM(decode(a.q, 2, a.bal, 0)) q2,
SUM(decode(a.q, 3, a.bal, 0)) q3,
SUM(decode(a.q, 4, a.bal, 0)) q4
FROM t_change_lc a
GROUP BY a.card_code
ORDER BY 1;
--行列转换 列转行
DROP TABLE t_change_cl;
CREATE TABLE t_change_cl AS
SELECT a.card_code,
SUM(decode(a.q, 1, a.bal, 0)) q1,
SUM(decode(a.q, 2, a.bal, 0)) q2,
SUM(decode(a.q, 3, a.bal, 0)) q3,
SUM(decode(a.q, 4, a.bal, 0)) q4
FROM t_change_lc a
GROUP BY a
Order-By-Clause排序语句
The ORDER BY clause specifies how the data is sorted within each group (partition). This will definitely affect the outcome of any analytic function. ORDER BY(按…排序)语句规定了每个分组(划分)的数据如何排序。这必然影响分析函数的结果。
Example: Calculate a running Total例:累计计算
本例中对某部门的工资进行逐行计算,每行包括之前所有行中工资的合计。
SELECT ename 'Ename', deptno 'Deptno', sal 'Sal',
AVG ,CORR,COVAR_POP ,COVAR_SAMP, COUNT ,CUME_DIST ,DENSE_RANK
,FIRST ,FIRST_VALUE ,LAG,LAST ,LAST_VALUE,LEAD ,MAX,MIN ,NTILE
,PERCENT_RANK,PERCENTILE_CONT ,PERCENTILE_DISC ,RANK
,RATIO_TO_REPORT
,REGR_ (Linear Regression) Functions
,ROW_NUMBER
,STDD
接上部分!!
每一条记录都能连接到上/下一行的内容
select 