如何利用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

第一次运行结果:

第二次运行结果:

参考技术A select A,max(B) from table_name group by A

如何随机从数据库表中抽一条数据的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随机显示一条数据?的主要内容,如果未能解决你的问题,请参考以下文章

怎样从sql数据库中一次随机读取一条数据,而且以后随机读取出的数据不能和以前每次随机读取出的数据重复?

sql语句如何随机取一条数据

如何随机从数据库表中抽一条数据的SQL语句

sql语句查询如何显示第一条数据

sql如何根据时间取出最新的数据记录

sql中如何使一列中的多个重复数据只显示第一条