当前位置:首页 » 编程语言 » sql随机取出两条数据
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql随机取出两条数据

发布时间: 2022-12-20 11:04:09

sql语句 随机读取记录

oracle随机读取表中的N条数据方法:

123

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 * from table_name sample(10) order by trunc(dbms_random.value(0, 1000))) where rownum < N;

说明: sample(10)含义为检索表中的10%数据,sample值应该在[0.000001,99.999999]之间,其中 sys_guid() 和 dbms_random.value都是内部函数
注:在使1)方法时,即使用sys_guid() 这种方法时,有时会获取到相同的记录,即:和前一次查询的结果集是一样的(可能是和操作系统有关:windows正常,linux异常;也可能是因为sys_guid()函数本身的问题,有待继续研究)所以,为确保在不同的平台每次读取的数据都是随机的,建议采用2)和3)两种方案,其中2)方案更常用。3)方案缩小了查询的范围,在查询大表,且要提取数据不是很不多的情况下,会对查询速度上有一定的提高

Ⅱ sql随机取n条数据

程序和数据库最优化效率考虑:
程序部分:随机5个大于1小于表记录数的数字a,b,c,d,e 。
select * from table where 记录行 in (a,b,c,d,e)

Ⅲ SQL怎么实现在记录的每个分类中随机抽取两条记录

select col1,col2,type
from (select col1,col2,type,rn,max() over(partitio by type) as rn_max
from (select col1,col2,type,row_number() over (paritition by type order by dbms_random.value) as rn
from tablename ) t
) p
where rn/rn_max<=0.1
;

sample不确定能不能用分析函数,但是主要是用来全表取sample的

Ⅳ sql 随机抽取几条数据的方法 推荐

四种数据库随机获取10条数据的方法
SQL Server:

SELECT TOP 10 * FROM T_USER ORDER BY NEWID()

ORACLE:

SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10

MySQL:

SELECT * FROM T_USER ORDER BY RAND() LIMIT 10

Access:

SELECT TOP 10 * FROM T_USER ORDER BY rnd([一个自动编号字段])

这条语句在 Access 中的“查询”中是可以运行并得到随机结果的,但在 ASP.NET等后台程序代码中却无法得到预期的随机效果。
正确的写法如下:
以ASP.NET为例:

Random random = new Random(System.Guid.NewGuid().GetHashCode());

int r = random.Next();
string sql = "SELECT TOP 10 * FROM T_USER ORDER BY RND(" + (-r) + "*自动编号字段)"

Ⅳ 使用SQL语句取随机数的方法

SQL随机查询语句,[数据库使用技巧]SQL语句生成随机数,如何随机显示sql查询语句查询的数据记录集中的20条,随机取出若干条记录的SQL语句,使用SQL语句取随机数的方法
方法如下:
SQL
Server:
Select
TOP
N
*
From
TABLE
order
By
NewID()
Access:
dim
r
randomize
r
=
rnd
sql
=
"select
top
10
*
from
table
order
by
rnd("
&
r
&
"-id)"
rnd("
&
r
&
"-id)
其中的id是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
select
top
10
*
from
table
order
by
rnd("
&
r
&
"-Len(UserName))
MySql:
Select
*
From
TABLE
order
By
Rand()
Limit
10
orACLE:
select
*from
(select
*from
t
order
by
dbms_random.value)
where
rownum<10

Ⅵ 数据库如何随机取两条记录

select top 2 , 歌名 as random from table1 order by random

Ⅶ sql 随机抽取几条数据的方法 推荐

传说用这个语句管用:select
top
5
*
from
tablename
order
by
newid()
我放到sql的查询分析器里去执行果然管用,随机抽取5条信息,不停的换,结果我应用到程序里的时候就不管用了,总是那几条,于是对这个东西进行了一个研究得出另一种方法:
newid()
可以产生如:"49869293-8891-4B31-B88E-A584D9621490”
这样的数据结果,而且每一行产生的都不同,这样的话,我们就可以在查询的时候给结果集里加上这么一个列,比如:
select
*,newsid()
from
表名
然后我们在给这个结果集排序,因为每次newid()所产生的值都不同,所以如果排序的话,每次当然也都不一样,这样我们就可以随机挑选几条数据了,那我们在从前面加上一个top
语句就变成了:
复制代码
代码如下:
select
top
10
*,
NewID()
as
random
from
表名
order
by
random
用这样的方法就可以得到。我们想要结果了。不信的话你可以去试试。

Ⅷ plsql随机提取数据的问题

eg:
select top 10 newid() as row, proctid, proctname from Procts order by row

NewID()在每一次调用的时候都产生一个GUID.这个方法是调用NewID()的值作为一列,然后通过NewID()排列这些值。

Ⅸ SQL yog中怎样从表中随机抽取几条数据

数据库的随机查询SQL x0dx0ax0dx0a1. Oracle,随机查询20条x0dx0aselect * fromx0dx0a(x0dx0aselect * from 表名x0dx0aorder by dbms_random.valuex0dx0a)x0dx0awhere rownum <= 20;x0dx0ax0dx0a2.MS SQL Server,随机查询20条x0dx0aselect top 20 * from 表名order by newid()x0dx0ax0dx0a3.My SQL:,随机查询20条x0dx0aselect * from 表名 order by rand() limit 20

Ⅹ SQL怎么实现在记录的每个分类中随机抽取两

SELECT ID,GID,Author,Title,DateFROM( SELECT rid=ROW_NUMBER() OVER(PARTITION BY 分类 ORDER BY NEWID()),* FROM tablename) AS TWHERE rid<=2