易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle中的分析函数

分析函数,最早是从ORACLE8.1.6开始出现的,它的设计目的是为了解决诸如“累计计算”,“找出分组内百分比”,“前-N条查询”,“移动平均数计算”"等问题。其实大部分的问题都可以用PL/SQL解决,但是它的性能并不能达到你所期望的效果。分析函数是SQL言语的一种扩充,它并不是仅仅试代码变得更简单而已,它的速度比纯粹的SQL或者PL/SQL更快。现在这些扩展已经被纳入了美国国家标准化组织SQL委员会的SQL规范说明书中。
   分析函数是在一个记录行分组的基础上计算它们的总值。与集合函数不同,他们返回各分组的多行记录。行的分组被称窗口,并通过分析语句定义。对于每记录行,定义了一个“滑动”窗口。该窗口确定“当前行”计算的范围。窗口的大小可由各行的实际编号或由时间等逻辑间隔确定。
    除了ORDER BY(按…排序)语句外,分析函数是一条查询被执行的操作。所有合并、WHERE、GROUP BY、HAVING语句都是分析函数处理之前完成的。因此,分析函数只出现在选择目录或ORDER BY(按…排序)语句中。
    前期数据准备:
create table EMP
(
  ENAME  VARCHAR2(10),
  DEPTNO VARCHAR2(2),
  SAL    NUMBER(10)
)
insert into EMP (ENAME, DEPTNO, SAL)
values ('CLARK', '10', 2450);
insert into EMP (ENAME, DEPTNO, SAL)
values ('MILLER', '10', 1300);
insert into EMP (ENAME, DEPTNO, SAL)
values ('KING', '10', 5000);
insert into EMP (ENAME, DEPTNO, SAL)
values ('FORD', '20', 3000);
insert into EMP (ENAME, DEPTNO, SAL)
values ('ADAMS', '20', 1100);
insert into EMP (ENAME, DEPTNO, SAL)
values ('JONES', '20', 2975);
insert into EMP (ENAME, DEPTNO, SAL)
values ('SCOTT ', '20', 3000);
insert into EMP (ENAME, DEPTNO, SAL)
values ('SMITH', '20', 800);
insert into EMP (ENAME, DEPTNO, SAL)
values ('ALLEN', '30', 1600);
insert into EMP (ENAME, DEPTNO, SAL)
values ('BLAKE', '30', 2850);
insert into EMP (ENAME, DEPTNO, SAL)
values ('JAMES', '30', 950);
insert into EMP (ENAME, DEPTNO, SAL)
values ('TURNER', '30', 1500);
insert into EMP (ENAME, DEPTNO, SAL)


相关文档:

Oracle Function


CREATE OR REPLACE FUNCTION OFFICE.fbill_getbalance (billid NUMBER, total NUMBER)
   RETURN NUMBER
IS
   paid      NUMBER;
   balance   NUMBER;
BEGIN
   balance := total;
--get total paid
   SELECT SUM (n_paidamount)
&nb ......

Oracle sqlplus远程连接数据库

Oracle sqlplus远程连接数据库
sqlplus username/password@yunSID_192.168.1.5
公司使用linux开发机进行程序开发时,由于开发用Oracle数据库是由日方提供,所以经常使用sqlplus连接到远程数据库上进行开发,例如:
sqlplus  username/password@servicename
于是想,用我的两台电脑双机互联试一试,也玩个&ldq ......

JAVA 连接ORACLE数据库代码

import java.net.url;
import java.sql.*;
public class javaoracle {
public javaoracle() {
}
public static void main(string[] args){
try
{
try{
class.forname("oracle.jdbc.driver.oracledriver");
}
catch(java.lang.classnotfoundexception e)
{
system.err.print(e.getmessage());
} ......

SQLServer和Oracle的常用函数对比

SQLServer和Oracle的常用函数对比
 
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
O:select floor(-1.001) value from dual ......

从ORACLE中用语句导出序列

今天从数据库中导出几张表,但发现需要的序列都没导出来,于是网上找找方法,发现了如下语句
select
'create sequence USERNAME.'|| t.sequence_name || ' minvalue '||MIN_VALUE||' maxvalue '||MAX_VALUE||' start with '||LAST_NUMBER||' increment by '||INCREMENT_BY||' cache '||CACHE_SIZE||' ;'
from dba_sequen ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号