在PLSQL中怎么能取到表中按ID降序排列的前十条记录

在PLSQL中怎么能取到表中按ID降序排列的前十条记录,第1张

在PLSQL中怎么能娶到表中按ID降序排列的前十条记录的sql语句是:

select rownum,t from (select from test order by id desc) t where rownum<11;

PLSQL是连接的oracle数据库,oracle中没有limit(limit是mysql中的用法)、top(top是sqlserver)关键字,oracle中限制行数条件是用rownum。

PL/SQL主要用于数据库编程,所以其所有的数据类型跟Oracle数据库里的字段类型是一一对应的,大体分为数字型、布尔型、字符型和日期型。这里简单介绍两种常用数据类型:number、varchar2。

number,用来存储整数和浮点数。范围为1e130~10e125,其使用语法为:number[(precision, scale)]其中(precision, scale)是可选的,precision表示所有数字的个数,scale表示小数点右边数字的个数。

varchar2用来存储变长的字符串,其使用语法为:varchar2[(size)]其中size为可选,表示该字符串所能存储的最大长度。

在PL/SQL中声明变量与其他语言不太一样,它采用从右往左的方式声明,比如声明一个number类型的变量v_id,那其形式应为:

v_id number,如果给上面的v_id变量赋值,不能用“=”,应该用“:=”,即形式为:v_id :=5;

扩展资料

对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依次类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。

1、rownum 对于等于某值的查询条件,例如:

SQL> select rownum,id,name from student where rownum=1;

SQL> select rownum,id,name from student where rownum =2;

2、rownum对于大于某值的查询条件,例如

SQL>select from(select rownum no ,id,name from student) where no>2;

3、rownum对于小于某值的查询条件,rownum对于rownum<n((n>1的自然数)的条件认为是成立的,所以可以找到记录。

方法是:

select from (select from t order by col1) where rownum<10

选取排序后的前N条记录:

1 Sql代码

select top 3 e_name from ptempcuishen_temp_20100707   order by id

select top 3 e_name from ptempcuishen_temp_20100707 order by id

Sql代码

select top 3  from ptempcuishen_temp_20100707   order by id

select top 3 from ptempcuishen_temp_20100707 order by id

2分页查询

可以用row_number关键字来进行分页查询,例如:

Sql代码

select  from ptempcuishen_temp_20100707   qualify row_number() over(order by id) >= 2 and row_number() over(order by id) <= 5

select from ptempcuishen_temp_20100707 qualify row_number() over(order by id) >= 2 and row_number() over(order by id) <= 5

with a as (

select id,plate,building, prio,ROW_NUMBER() OVER(PARTITION BY building ORDER BY prio) rn from t

)

select from a

where rn <=10

你需要的是不是 类似下面这样的效果?

存储过程中, 游标处理的时候, 实现先选取前十行。 第二次选取第十一行到20行,依次类推

LIMIT 后面的数字,意味着每一批加载多少数据。

DECLARE

-- 定义类型

TYPE test_type IS TABLE OF test_main%ROWTYPE;

test_data test_type;

-- 定义游标

CURSOR c_test_main IS

SELECT id, value FROM test_main;

BEGIN

-- 打开游标

OPEN c_test_main;

-- 开始循环

LOOP

-- 填充数据 批量填充,每次读取10条

FETCH c_test_main

BULK COLLECT INTO test_data LIMIT 10;

-- 调试输出

FOR i IN 1test_datacount

LOOP

dbms_outputput_line(test_data(i)value);

END LOOP;

-- 当没有数据的时候,退出。

EXIT WHEN c_test_main%NOTFOUND;

END LOOP;

-- 关闭游标

CLOSE c_test_main;

END;

/

以上就是关于在PLSQL中怎么能取到表中按ID降序排列的前十条记录全部的内容,包括:在PLSQL中怎么能取到表中按ID降序排列的前十条记录、oracle中怎么先排序然后再从排序后的数据中取前几条、oracle 分组排序求top 10等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9332053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存