Oracle中分组查询时keep的使用[转][最简][易懂]
for example:
15:18:59 SQL> create table t1 (a int, b int);
表已创建。
已用时间: 00: 00: 00.15
15:18:59 SQL>
15:18:59 SQL> insert into t1 values (1,5);
已创建 1 行。
已用时间: 00: 00: 00.16
15:18:59 SQL> insert into t1 values (1,3);
已创建 1 行。
已用时间: 00: 00: 00.16
15:18:59 SQL> insert into t1 values (1,4);
已创建 1 行。
已用时间: 00: 00: 00.15
15:18:59 SQL> insert into t1 values (2,1);
已创建 1 行。
已用时间: 00: 00: 00.16
15:18:59 SQL> insert into t1 values (2,3);
已创建 1 行。
已用时间: 00: 00: 00.00
15:18:59 SQL>
15:18:59 SQL> SELECT
15:18:59 2 max(b) KEEP (DENSE_RANK LAST ORDER BY (a) desc) AS last,
15:18:59 3 max(b) KEEP (DENSE_RANK FIRST ORDER BY (a) desc)
相关文档:
在一般的PL/SQL程序开发中,可以使用SQL的DML语句和事务控制语句,但是DDL语句及会话语句却不能在PL/SQL中直接使用,要想实现在PL/SQL中使用DDL语句及会话控制语句,可以通过动态SQL来实现。
所谓动态SQL是指在PL/SQL块编译时SQL语句是不确定的,例如根据用户输入参数的不同而 ......
应个报表要求做个
时间 双色球, 胜负彩。。。。。
200905 销量 销量
200906 销量 销量
200907 &n ......
oracle11g具有自动的表压缩功能, 但当insert语句未指定具体的列名时, 会使用自动表压缩功能失效。(如该语句会使得表t_test不能自动压缩: insert into t_test select * from t_test2)
另外使用一些外部工具进行数据装载(sqlload),也有可能使得表不能自动压缩,此时需要用以下语句,以重新分析表,分析完成之后,该表即会 ......