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)
相关文档:
1. create table people (age int, id int);
2. 创建数据文件PeopleDate.txt.
数据为:
20,1
30,2
3. 创建 ......
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 ......
数据库查询中难免会遇到行列转换的情况,摘列一些较精典的解决方案
--####################################################################
一、采用SQL decode和PL/SQL函数实现
--####################################################################
1、固定列数的行列转换
如
student subject grade
---- ......
1.首先需要建立plan table,否则不能使用
建立方法:
$oracle\rdbms\admin下有个
utlxplan.sql
其内容为:
create table PLAN_TABLE (
statement_id varchar2(30),
timestamp date,
remarks varchar2(80),
operat ......
数据库的启动有三种:
1
:
startup nomount
这种过程又称为:非安装启动
启动过程为:启动
oracle
实例,不加载数据库,不打开数据库。在这个过程中只需要
init.ora
初始化参数文件,重建控制文件,即启动 ......