解释:如此条数据中特定的这条数据有日期字段,并且是最早更新、最后更新的;有优先级字段,并且这条记录是优先级最高的,或者最低的;有id字段,这个字段是id最小的或者最大的,这样才可以的。
sql:select
from
tablename
order
by
id
asc/desc;
1、创建测试表,
create table test_order(id number, value varchar2(50));
2、插入测试数据
insert into test_order values(3,'v3');
insert into test_order values(2,'v2');
insert into test_order values(1,'v1');
insert into test_order values(5,'v5');
insert into test_order values(4,'v4');
commit;
3、查询表中全量数据,可以发现数据并未排序,select t, rowid from test_order t;
4、编写sql,数据只要排序后的第一条记录(不用rownum=1) select from (select t, row_number() over(order by id) rn from test_order t) t where rn = 1;
如果是没有规律的取值,那么是没有实际意义的,如果是为了找字段的取值范围,那么可以通过max和min方法实现。sql:select max(id),min(id) from tablename ;
解释:min函数是取出本字段的最小值,也就是第一个值,max函数是取出本字段的最大值,也就是最后一个值。
数据导出具体如下:
将数据库TEST完全导出,用户名system密码manager导出到D:chudmp中。
将数据库中system用户与sys用户的表导出。
将数据库中的表table1、table2导出。
将数据库中的表table1中的字段filed1以"00"打头的数据导出。
将D:chudmp中的数据导入TEST数据库中。
将d:chudmp中的表table1导入。
oracle中如果只取第一个值,可以不用游标。
例如,以emp表为例。取出第一条记录。
示例代码:
v_empno number(4);
v_ename varchar2(20);
v_job varchar2(20);
v_mgr number(4);
v_hiredate varchar2(10);
v_sal number(10,2);
v_comm number(10,2);
v_deptno number(2);
begin
select empno,ename,job,mgr,to_char(hiredate,'yyyy-mm-dd'),sal,comm,deptno into
v_empno,v_ename,v_job,v_mgr,v_hiredate,v_sal,v_comm,v_deptno
from emp where rownum<=1;
dbms_outputput_line(v_empno||','||v_ename||','||v_job||','||v_mgr||','||v_hiredate||','||v_sal||','||v_comm||','||v_deptno);
end;
执行结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)