當前位置:首頁 » 編程語言 » sql隨機取出兩條數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql隨機取出兩條數據

發布時間: 2022-12-20 11:04:09

sql語句 隨機讀取記錄

oracle隨機讀取表中的N條數據方法:

123

1) select * from (select * from tablename order by sys_guid()) where rownum < N; 2) select * from (select * from tablename order by dbms_random.value) where rownum< N; 3) select * from (select * from table_name sample(10) order by trunc(dbms_random.value(0, 1000))) where rownum < N;

說明: sample(10)含義為檢索表中的10%數據,sample值應該在[0.000001,99.999999]之間,其中 sys_guid() 和 dbms_random.value都是內部函數
注:在使1)方法時,即使用sys_guid() 這種方法時,有時會獲取到相同的記錄,即:和前一次查詢的結果集是一樣的(可能是和操作系統有關:windows正常,linux異常;也可能是因為sys_guid()函數本身的問題,有待繼續研究)所以,為確保在不同的平台每次讀取的數據都是隨機的,建議採用2)和3)兩種方案,其中2)方案更常用。3)方案縮小了查詢的范圍,在查詢大表,且要提取數據不是很不多的情況下,會對查詢速度上有一定的提高

Ⅱ sql隨機取n條數據

程序和資料庫最優化效率考慮:
程序部分:隨機5個大於1小於表記錄數的數字a,b,c,d,e 。
select * from table where 記錄行 in (a,b,c,d,e)

Ⅲ SQL怎麼實現在記錄的每個分類中隨機抽取兩條記錄

select col1,col2,type
from (select col1,col2,type,rn,max() over(partitio by type) as rn_max
from (select col1,col2,type,row_number() over (paritition by type order by dbms_random.value) as rn
from tablename ) t
) p
where rn/rn_max<=0.1
;

sample不確定能不能用分析函數,但是主要是用來全表取sample的

Ⅳ 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) + "*自動編號欄位)"

Ⅳ 使用SQL語句取隨機數的方法

SQL隨機查詢語句,[資料庫使用技巧]SQL語句生成隨機數,如何隨機顯示sql查詢語句查詢的數據記錄集中的20條,隨機取出若干條記錄的SQL語句,使用SQL語句取隨機數的方法
方法如下:
SQL
Server:
Select
TOP
N
*
From
TABLE
order
By
NewID()
Access:
dim
r
randomize
r
=
rnd
sql
=
"select
top
10
*
from
table
order
by
rnd("
&
r
&
"-id)"
rnd("
&
r
&
"-id)
其中的id是自動編號欄位,可以利用其他任何數值來完成,比如用姓名欄位(UserName)
select
top
10
*
from
table
order
by
rnd("
&
r
&
"-Len(UserName))
MySql:
Select
*
From
TABLE
order
By
Rand()
Limit
10
orACLE:
select
*from
(select
*from
t
order
by
dbms_random.value)
where
rownum<10

Ⅵ 資料庫如何隨機取兩條記錄

select top 2 , 歌名 as random from table1 order by random

Ⅶ sql 隨機抽取幾條數據的方法 推薦

傳說用這個語句管用:select
top
5
*
from
tablename
order
by
newid()
我放到sql的查詢分析器里去執行果然管用,隨機抽取5條信息,不停的換,結果我應用到程序里的時候就不管用了,總是那幾條,於是對這個東西進行了一個研究得出另一種方法:
newid()
可以產生如:"49869293-8891-4B31-B88E-A584D9621490」
這樣的數據結果,而且每一行產生的都不同,這樣的話,我們就可以在查詢的時候給結果集里加上這么一個列,比如:
select
*,newsid()
from
表名
然後我們在給這個結果集排序,因為每次newid()所產生的值都不同,所以如果排序的話,每次當然也都不一樣,這樣我們就可以隨機挑選幾條數據了,那我們在從前面加上一個top
語句就變成了:
復制代碼
代碼如下:
select
top
10
*,
NewID()
as
random
from
表名
order
by
random
用這樣的方法就可以得到。我們想要結果了。不信的話你可以去試試。

Ⅷ plsql隨機提取數據的問題

eg:
select top 10 newid() as row, proctid, proctname from Procts order by row

NewID()在每一次調用的時候都產生一個GUID.這個方法是調用NewID()的值作為一列,然後通過NewID()排列這些值。

Ⅸ SQL yog中怎樣從表中隨機抽取幾條數據

資料庫的隨機查詢SQL x0dx0ax0dx0a1. Oracle,隨機查詢20條x0dx0aselect * fromx0dx0a(x0dx0aselect * from 表名x0dx0aorder by dbms_random.valuex0dx0a)x0dx0awhere rownum <= 20;x0dx0ax0dx0a2.MS SQL Server,隨機查詢20條x0dx0aselect top 20 * from 表名order by newid()x0dx0ax0dx0a3.My SQL:,隨機查詢20條x0dx0aselect * from 表名 order by rand() limit 20

Ⅹ SQL怎麼實現在記錄的每個分類中隨機抽取兩

SELECT ID,GID,Author,Title,DateFROM( SELECT rid=ROW_NUMBER() OVER(PARTITION BY 分類 ORDER BY NEWID()),* FROM tablename) AS TWHERE rid<=2