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

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

SELECTtop10ID,nameFROMdt_keywordORDERBYNEWID()


方法2:性能还可以

//先给数据库增加一列

ALTER

TABLEdt_keywordADDSortKeyASNEWID()

//查询时执行下边sql

SELECTtop10ID,nameFROMdt_keywordWHERESortKeyLIKE'A%B%C%D%E%F%'


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

SELECT TOP 10 * FROM dt_keyword tablesample (10000 Rows)


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

SELECTtop10*FROM dt_keyword  whereid>=(selectcount(ID)fromdt_keyword)*rand()


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

SELECT top 10 * FROM dt_keyword 

where id>=(select max(ID) from dt_keyword)*rand()


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

你可能感兴趣的:(sql随机查询数据order by newid())