SQL、MySQL、Oracle随机查询语句?

SQL、MySQL、Oracle随机查询语句?

1、Oracle查询结果集,随机排序

select * from tableName order by dbms_random.value();

2、MySQL随机查询,随机排序

SELECT * FROM tableName ORDER BY rand()

3、SQL随机查询,随机排序

SELECT *  FROM tableName  ORDER BY NEWID()

4、Oracle随机查询20条

select * from

 select  *  from tableName    order by dbms_random.value
)
 where rownum <= 20;

5、My SQL随机查询20条

select  *  from  tableName  order by rand() limit 20

6、MS SQL Server随机查询20条

select top 20  * from  tableName order by newid()
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-12
关于SQL Server SQL语句查询分页数据的解决方案:要求选取 tbllendlist 中 第3000页的记录,每一页100条记录。-----------------------------------方法1:----------select top 100 * from tbllendlistwhere fldserialNo not in(select top 300100 fldserialNo from tbllendlistorder by fldserialNo)order by fldserialNo----------方法2:----------SELECT TOP 100 *FROM tbllendlistWHERE (fldserialNo >(SELECT MAX(fldserialNo)FROM (SELECT TOP 300100 fldserialNoFROM tbllendlistORDER BY fldserialNo) AS T))ORDER BY fldserialNo方法1执行速度比较快!不过,这种做法还是很麻烦,强烈期待微软发明新的可分页的SQL语句来!!!!SQL Server ---------------------------------------------------------------------------------从数据库表中的第M条记录开始取N条记录,利用Top关键字:注意如果Select语句中既有top,又有order by,则是从排序好的结果集中选择:SELECT *FROM ( SELECT Top N *FROM (SELECT Top (M + N - 1) * FROM 表名称 Order by 主键 desc) t1 ) t2Order by 主键 asc例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:SELECT *FROM ( SELECT TOP 20 *FROM (SELECT TOP 29 * FROM Sys_option order by sys_id desc) t1) t2Order by sys_id ascOralce数据库--------------------------------------------------------------------------------从数据库表中第M条记录开始检索N条记录SELECT *FROM (SELECT ROWNUM r,t1.* From 表名称 t1 where rownum < M + N) t2where t2.r >= M例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:SELECT *FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2Where t2.R >= 10如果你对Oracle数据库分页不是很熟悉的话,本页后面有专门对Oracle分页技术的讲解。My sql数据库---------------------------------------------------------------------------------------------My sql数据库最简单,是利用mysql的LIMIT函数,LIMIT [offset,] rows从数据库表中M条记录开始检索N条记录的语句为:SELECT * FROM 表名称 LIMIT M,N例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:select * from sys_option limit 10,20TAG: racle RACLE Server server SERVER sql SQL
第2个回答  2013-04-12
SQL随机查询语句,SQL语句生成随机数,如何随机显示sql查询语句查询的数据记录集中的20条,随机取出若干条记录的SQL语句,使用SQL语句取随机数的方法方法如下:SQL Server:
Select TOP N * From TABLE order By NewID()Access:
sql = "select top N * from table order by rnd(" & r & "-id)"
rnd(" & r & "-id) 其中的id是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
select top 10 * from table order by rnd(" & r & "-Len(UserName))注:Id:为你当前表的唯一ID字段名MySql:
Select * From TABLE order By Rand() Limit NorACLE:
select *from (select *from table order by dbms_random.value) where rownum<10
DB2: SELECT column, RAND() as IDX
FROM table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY
第3个回答  2013-04-12
比如随机插4条
oracle
select * from (select * from 表名 order by dbms_random.value) where rownum<=4

sqlserver
select top 4 * from 表名 order by newid()

mysql
select * from 表名 order by rand() limit 4;本回答被网友采纳
相似回答