如何利用SQL随机显示一条数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用SQL随机显示一条数据?相关的知识,希望对你有一定的参考价值。
一个表有两列数据如:
1 2
1 3
2 3
2 4
2 9
如何利用SQL,第一列为唯一,第一列随机显示一条
如
1 2
2 9
,第一列为唯一,第二列随机显示一条
有回答让我满意的一定给分!
核心思路:在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语句
NewID() 方法返回一个 GUID,如:EE95A489-B721-4E8A-8171-3CA8CB6AD9E4
在 select 表的时候,再增加一列为 NewID() 就可以了。
SQL 语句:select *, NewID() from table
这样每条记录后就会有一个随机的 GUID 值,我们再按这个 GUID 排一下序就可以达到乱序的效果。
SQL 语句:select *, NewID() as random from table order by random
我们要想随机取出 10 条数据,只要加上 TOP 10 就行了:
SQL 语句:select top 10 *, NewID() as random from table order by random
筛选唯一记录
SELECT * FROM tablename ORDER BY NEWID()
这个方法只适用于 SQL Server。
SELECT top 4 * FROM 表 ORDER BY Rnd(id)
这句适用于ACCESS的,大家能参考
select * from table_name order by rand() [limit num];
mysql的随机查询语句。
以上是关于如何利用SQL随机显示一条数据?的主要内容,如果未能解决你的问题,请参考以下文章