sql随机查询数据order by newid()

方法1:最普通的写法,性能慢

SELECT top 10 ID,name FROM dt_keyword ORDER BY NEWID()

方法2:性能还可以

//先给数据库增加一列ALTER TABLE dt_keyword ADD SortKey AS NEWID()
//查询时执行下边sql
SELECT top 10 ID,name FROM dt_keyword WHERE SortKey LIKE ‘A%B%C%D%E%F%‘ 

方法3:效率还好,含sql2008以上支持

SELECT TOP 10 * FROM dt_keyword tablesample (10000 Rows)

方法4:如果id连续,速度最快

SELECT top 10 * FROM dt_keyword
where id>=(select count(ID) from dt_keyword)*rand()

方法5:如果id不连续,速度最快

SELECT top 10 * FROM dt_keyword
where id>=(select max(ID) from dt_keyword)*rand()

//如果您有更好的方法请留言

原文地址:https://www.cnblogs.com/webapi/p/10184583.html

时间: 2024-07-29 04:01:07

sql随机查询数据order by newid()的相关文章

sql随机查询数据语句(NewID(),Rnd,Rand(),random())

SQL Server: 代码如下 复制代码 Select TOP N * From TABLE Order By NewID() NewID()函数将创建一个 uniqueidentifier 类型的唯一值.上面的语句实现效果是从Table中随机读取N条记录. Access: 代码如下 复制代码 Select TOP N * From TABLE Order By Rnd(ID) Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName) Se(ww

sql 随机查询数据

SELECT {$field} FROM {$table} as t1 WHERE id IN ( SELECT t.id FROM (SELECT id FROM {$table} where 1=1 {$where} ORDER BY RAND() {$limit} ) AS t )

如何实现MySQL随机查询数据与MySQL随机更新数据?

以下的文章主要介绍的是MySQL随机选取数据,对实现MySQ随机查询数据与MySQ随机更新数据的实际操作步骤的描述,以及对其实际操作中所要用到的语句的描述,以下就是对其具体操作步骤的描述. MySQL随机查询数据 以前在群里讨论过这个问题,比较的有意思.mysql的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了. SELECT * FROM table_name ORDER BY rand() LIMIT 5; MySQ

sql随机抽取数据

Mysql:select * from [tablename] order by rand() limit 10 Sql Server:select top 5 * from [tablename] order by NEWID() Access:select top 5 * from [tablename] order by rnd(id),其中id是自动编号的字段.在vb+access可以随机,但在asp里却没法得到随机的结果.可能是asp有缓存的结果吧,因此,需要修改一下这条语句,改为下面

Sql笔记-查询数据仅出现过一次、小数据位不为零、删除表及序列、ifnull函数

查询数据表中每条相同的数据仅出现一次 select  distinct(ORDER_NO ) from ibsp_record_fee 查询数据表中数据中小数位不为0 select * from ibsp_pay_record pr where  pr.amount<>round(pr.amount,0) 或者 select * from ibsp_pay_record pr where  pr.amount!= cast(pr.amount as decimal(13,0)) 删除表及id序

Excel 中使用SQL 语句查询数据(二)

上一篇博文我们在导入外部数据的时候用的是OLE DB的方式(请参考上一篇博文)我们今天分享如何用Microsoft query导入外部数据.大家会有疑问OLE DB 和Microsoftquery 连接外部数据有什么区别的,我这里只说他们是两种不同的标准.具体的区别有机会再解释. 大家体会以下步骤,如图 首先请看数据源.(employee.xlsx中的sheet1) 我们选择要显示导入数据的位置,(比如我这里在employee.xlsx的sheet2显示导入的数据)并选择data菜单,from

Excel 中使用SQL 语句查询数据(七)-----用LIKE 运算符进行模糊匹配查询

这篇博文要和大家分享的是用LIKE 运算符进行模糊匹配查询下图数据源商品代号包含数字的数据. 我们用Microsoft query连接数据源,步骤请参考本系列第一篇博文.语句如下图 其中 LIKE '%[0-9]%' 执行结果如下 然后将结果导入excel  的sheet中

Excel 中使用SQL 语句查询数据

对于Excel中进行数据分析,除了强大的数据透视表之外,还可以利用SQL 语句进行数据分析:当然,前提是你需要熟悉SQL 语句. 首先我们来看下图的员工数据表.也就是数据源 这里我们将使用现有的的连接.以后我们会分享 从其他数据源,可以在一个表中以命名的方式来创建table 点击完之后会出现下图,然后点击browser for more 然后选择数据表.他将sheet变成了数据表 点确定后会出现如下对话框.点击properties 然后在下图就可以输入sql语句了...注意下图的几个选项. 下图

Excel 中使用SQL 语句查询数据(五)

今天我们来分享的数据查询语句是UNION ALL,用来连接不连续去域.结合union all 语句的话我们还需要来对不同的区域定义 名称 .如下图 一月份定义名称为 JAN ,二月份定义为FEB 定义名称过程如下 然后,用OLE DB 的方式创建数据连接.过程请看之前博文. 是在命令窗口中输入 SELECT * FROM JAN UNION ALL SELECT * FROM FEB 执行命令后,结果如下 大家可以多多练习.