如何利用SQL随机显示一条数据?

如何利用SQL随机显示一条数据?,第1张

核心思路:在SQL Server中,可以用order by newid()实现随机排序

--测试数据

with tmp(a,b) as (

  select 1,2 union all

  select 1,3 union all

  select 2,3 union all

  select 2,4 union all

  select 2,9)

--利用row_number和order by newid()实现随机取一行

select a,b from (

  select a,b

    ,row_number() over (partition by a order by newid()) as seq

  from tmp

) t where seq=1

第一次运行结果:

第二次运行结果:

数据库的随机查询SQL

1. Oracle,随机查询20条

select * from

(

select * from 表名

order by dbms_random.value

)

where rownum <= 20

2.MS SQL Server,随机查询20条

select top 20 * from 表名order by newid()

3.My SQL:,随机查询20条

select * from 表名 order by rand() limit 20

首先看一下你的数据量多不多!

不过一般使用Access的数据也不会太多!

你可以这样做,用一个数组,将数据库中的记录不会有重复的列的值储存下来。

然后使用随机函数,从数组中抽区随机一个!

例子:

Dim DBVal()

………………(省略从数据库中读取数据的代码)

这里要强调一点,你数据库中的记录有多少条,你就要重新定义数组的维数上限

可以使用Redim关键字

Redim DBVal(1 To [数据库游标].RecordCount)

然后就可以开始抽选了:

Dim intRecordNum

Randomize '如果你的程序只抽取一条记录,则可以不要这个

intRecordNum = Int((UBound(DBVal) - 1) * Rnd) + 1

到这里,已经可以得出想要抽取的记录关键字了,你可以根据DBVal(intRecordNum)作为条件,搜索数据库中与该变量相符合的数据


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

原文地址:https://54852.com/sjk/6702198.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存