打印本文 打印本文 关闭窗口 关闭窗口
随机抽取n个记录的SQL
作者:武汉SEO闵涛  文章来源:敏韬网  点击数971  更新时间:2007/11/14 11:47:52  文章录入:mintao  责任编辑:mintao

随机抽取n个记录的SQL(mysql和sqlserver)

mysql: select * from tablename order by rand() limit 10
sqlserver: select top 10 * from tablename order by NEWID()

 

在符合条件的数据中的,从第5条开始提出后面10条数据
mysql: select * from table limit 5,10
sqlserver: SELECT TOP 10 *
FROM table WHERE (IDENTITYCOL NOT IN
(SELECT TOP 5 IDENTITYCOL
FROM table order by IDENTITYCOL))
order by IDENTITYCOL


或:
select *,IDENTITY(int,1,1) as Num into ##aa from tablename
select * from ##aa where Num >=5 and Num <=10


注:

IDENTITYCOL
返回标识列。有关更多信息,请参见 IDENTITY(属性)、ALTER TABLE 和 CREATE TABLE。
如果 FROM 子句中的多个表内有包含 IDENTITY 属性的列,则必须用特定的表名(如 T1.IDENTITYCOL)限定 IDENTITYCOL。


ROWGUIDCOL
返回行全局唯一标识列。
如果在 FROM 子句中有多个表具有 ROWGUIDCOL 属性,则必须用特定的表名(如 T1.ROWGUIDCOL)限定 ROWGUIDCOL。

打印本文 打印本文 关闭窗口 关闭窗口