www.qprq.net > orAClE中根据条件取随机N行

orAClE中根据条件取随机N行

SELECT * FROM ( SELECT A,B,ROW_NUMBER() OVER(partition by A order by A desc) as RN FROM TABLE ORDER BY A,B ) WHERE RN

oracle随机读取表中的N条数据方法: 1) select * from (select * from tablename order by sys_guid()) where rownum < N; 2) select * from (select * from tablename order by dbms_random.value) where rownum< N; 3) select * from (select ...

select tt.* from (select rownum rn,t.* from table1 t ) tt where tt.rn in (select trunc(dbms_random.value(1,(select count(*) from table1 ))) from dual connect by rownum

sqlserver中可以用top n 的方法,oracle中用 rownum,但如果只用 rownum会随机取数据,如果想按一定顺序取前几条数据 则可这样写: select * from (select列 from 表 where 条件 order by列 desc) where rownum

方法有很多种,这里提供一例供参考: select * from (select * from scott.emp order by dbms_random.random) where rownum

这几天工作上的需要,要从一个比较大的表中随机取出一条记录,oracle 不像MS SQLSERVER那样,直接用Select TOP 1 * From TABLE Order By NewID(),就能高效的随机查出一条记录。经过一翻折腾,用一个有90万条记录的表t_id,只有一个gameid字段,该...

一个简单的思路(如果要查N 到 M 行),先查出前M行数据 ,倒序,在查出M-N行就行了。 Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc id 为主键

既然是随机,就很难保证是不重复,除非你每次查询完后把查询出来的更新掉状态。 select * from (select * from table order by dbms_random.random) where rownum < n 根据随机规则排序,取前n个 但是会出现重复的

楼上的答案肯定不对, 因为 rownum 伪列是 sql 语句查询结果集的编号, 如果有数据被查出来那么 rownum 一定是从 1 开始的, 不可能从 3 开始, 所以select * from table where rownum between n and n+3 永远返回零条记录。 正确的做法: select...

Oracle提前某数据的前几位用substr函数。 如test表中数据如下: 现要提取dept字段中的前两位,可用如下语句: select id,name,substr(dept,1,2) from test;结果: substr函数介绍: 语法: substr(string,start,length) 参数: string - 指定的...

网站地图

All rights reserved Powered by www.qprq.net

copyright ©right 2010-2021。
www.qprq.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com