随机抽取n个记录的SQL

王朝mssql·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

随机抽取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。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航