❶ hql怎麼從資料庫中隨機抽取幾條記錄
題主可以參考運行下列mysql資料庫 Sql語句(隨機抽取5條記錄):
select * from tblName order by rand() limit 5;
❷ SQL、MySQL、Oracle隨機查詢語句
關於SQL Server SQL語句查詢分頁數據的解決方案:要求選取 tbllendlist 中 第3000頁的記錄,每一頁100條記錄。-----------------------------------方法1:----------select top 100 * from tbllendlistwhere fldserialNo not in(select top 300100 fldserialNo from tbllendlistorder by fldserialNo)order by fldserialNo----------方法2:----------SELECT TOP 100 *FROM tbllendlistWHERE (fldserialNo >(SELECT MAX(fldserialNo)FROM (SELECT TOP 300100 fldserialNoFROM tbllendlistORDER BY fldserialNo) AS T))ORDER BY fldserialNo方法1執行速度比較快!不過,這種做法還是很麻煩,強烈期待微軟發明新的可分頁的SQL語句來!!!!SQL Server ---------------------------------------------------------------------------------從資料庫表中的第M條記錄開始取N條記錄,利用Top關鍵字:注意如果Select語句中既有top,又有order by,則是從排序好的結果集中選擇:SELECT *FROM ( SELECT Top N *FROM (SELECT Top (M + N - 1) * FROM 表名稱 Order by 主鍵 desc) t1 ) t2Order by 主鍵 asc例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:SELECT *FROM ( SELECT TOP 20 *FROM (SELECT TOP 29 * FROM Sys_option order by sys_id desc) t1) t2Order by sys_id ascOralce資料庫--------------------------------------------------------------------------------從資料庫表中第M條記錄開始檢索N條記錄SELECT *FROM (SELECT ROWNUM r,t1.* From 表名稱 t1 where rownum < M + N) t2where t2.r >= M例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:SELECT *FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2Where t2.R >= 10如果你對Oracle資料庫分頁不是很熟悉的話,本頁後面有專門對Oracle分頁技術的講解。My sql資料庫---------------------------------------------------------------------------------------------My sql資料庫最簡單,是利用mysql的LIMIT函數,LIMIT [offset,] rows從資料庫表中M條記錄開始檢索N條記錄的語句為:SELECT * FROM 表名稱 LIMIT M,N例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:select * from sys_option limit 10,20TAG: racle RACLE Server server SERVER sql SQL
❸ sql 一個表裡已經 有20行數據 ,然後要從另一個表裡隨機抽取20條 覆蓋掉之前的數據
如果表結構一樣。
首先嘛
DELETE FROM 那個只有20行數據的表
然後隨機插入
由於 TOP - N 的處理, 與 隨機抽取 , 各個資料庫處理的 方式各不相同, 下面是不同資料庫的處理辦法:
Oracle:
INSERT INTO 空白表
SELECT *
FROM
(
SELECT * FROM 有數據的表 ORDER BY dbms_random.value
) subQuery
where rownum <= 20;
DB2:
INSERT INTO 空白表
SELECT *
FROM 有數據的表
ORDER BY rand()
fetch first 20 rows only;
SQL Server:
INSERT INTO 空白表
SELECT TOP 20 *
FROM 有數據的表
ORDER BY
newid();
MySQL :
INSERT INTO 空白表
select *
FROM 有數據的表
ORDER BY rand() LIMIT 0, 20;
SQLite :
INSERT INTO 空白表
select *
FROM 有數據的表
ORDER BY RANDOM() LIMIT 0, 20;
❹ 如何從mysql資料庫中隨機獲取任意條數據
隨機讀取可用newid(),取一條可用top 1
舉例:如在表test中隨機抽取一條未被讀取的數據,執行語句為:
select?top?1?*?from?test?order?by?newid()第一次執行結果:
第二次執行結果:
結論:兩次執行結果有可能一樣,也有可能不一樣,也就是實現了隨機的效果。
❺ 如何從sql資料庫里隨機取20條記錄
Select Top 5 * From 表名 Order By NEWID() , newid 產生的新的值是不固定的 。 在Select表裡的數據的NEWID() 函數時候 隨即選出N條記錄 。希望能夠幫助你 。
❻ 隨機數的問題(.net)我在做一個隨機出題的模塊!資料庫里有20道題,我要隨機出來6 個,Sql 語句應該怎麼
你用的什麼資料庫,不同的資料庫查詢語句是不一樣的
SQL Server:
Select TOP 6 * From TABLE Order By NewID();
Access:
Select TOP 6 * From TABLE Order By Rnd(ID) ; //其中ID為表的主鍵,也可以是其他排序欄位
MySql:
Select * From TABLE Order By Rand() Limit 6
❼ hibernate隨機取得資料庫中的20條數據,資料庫用oracle,怎樣做效率最高
做一個考試系統,需要要隨機抽題目組卷!把我的思路簡單說一下
1. 使用Hibernate,要有高的效率, 好的OO設計非常重要,這影響到緩存的設計。
2.組卷是先把所有題目載入到緩存中,我採用的方式放在Collection對象中。
3.每次組卷前,對Collection裡面的對象進行隨機排序。隨機演算法類似洗牌演算法,可以見:http://apps.hi..com/share/detail/6221904 第2種演算法說明。
4.隨機排序Collection裡面的題目後,開始順序取出Collection的題目。全部都是再緩存進行,只需要查詢一次資料庫。
5.如果題目很多,無法全部載入到緩存中,那麼載入題目的ID。
項目是前年做的,組卷的時候在7000道題隨機組卷,每份試卷75道題左右。100份試卷好像幾秒組完。還可以接受。
❽ C# 隨機從資料庫抽取數據。
1:
資料庫查隨即抽取10條QuestionId
放到數組arrayQuestion中
arrayQuestion[0-9]="select
top
10
QuestionId
,NewID()
as
random
from
Question
order
by
random"
2:頁面載入時顯示第一條(定義變數int
n=0;)
第一條數據="select
QuestionTopic
from
Question
where
QuestionId=arrayQuestion[n]"
3:button_onclick事件,點擊顯示下一條數據
n++;
下一條數據="select
QuestionTopic
from
Question
where
QuestionId=arrayQuestion[n]"
我想我講的已經夠詳細了。。。。~~
❾ sql 隨機抽取幾條數據的方法 推薦
四種資料庫隨機獲取10條數據的方法
SQL Server:
SELECT TOP 10 * FROM T_USER ORDER BY NEWID()
ORACLE:
SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10
MySQL:
SELECT * FROM T_USER ORDER BY RAND() LIMIT 10
Access:
SELECT TOP 10 * FROM T_USER ORDER BY rnd([一個自動編號欄位])
這條語句在 Access 中的「查詢」中是可以運行並得到隨機結果的,但在 ASP.NET等後台程序代碼中卻無法得到預期的隨機效果。
正確的寫法如下:
以ASP.NET為例:
Random random = new Random(System.Guid.NewGuid().GetHashCode());
int r = random.Next();
string sql = "SELECT TOP 10 * FROM T_USER ORDER BY RND(" + (-r) + "*自動編號欄位)"