随机获取5条记录
1、Access
盡管在Access的sql視圖下可以根據select top 5 * from tb order by rnd(field_id);實現,但是如果在應用程序中執行這條語句每次得到的結果總是一樣;個人感覺這是由于隨機種子沒有被初始化。因此,需要利用程序,幫助其初始化隨機種子。
System.Random rnd = new System.Random();
string iTmp = rnd.Next(10000).ToString();
string sql = "SELECT TOP 5 * FROM [tb] ORDER BY RND(-([ID] + "+iTmp+"))";
?
2、SQL Server
select top 5 * from tb order by newid();
?
3、Oracle
產生一個隨機id列表,然后與實體表join得到對應的記錄;因此,問題的重點在于產生一個隨機id列表。
產生一個隨機id列表的sql語句如下:
select trunc(dbms_random.value(1, 5000)) as id from tablename where rownum < 6;??
???
說明:dbms_random.value(1, 5000)是取1到5000間的隨機數,會有小數, trunc函數對隨機數字取整,才能和臨時表的整數ID字段相對應。
?
轉載于:https://www.cnblogs.com/aspsmile/archive/2008/08/06/1261847.html
總結
- 上一篇: @微信官方,给我微信旁边加个福字
- 下一篇: 谷歌:. apk 成为历史!