當前位置:首頁 » 編程語言 » randomsql

randomsql

發布時間: 2022-08-03 11:57:53

『壹』 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如何取隨機數問題

Oracle的隨機數產生函數(DBMS_RANDOM )
2007-10-17 17:12
Oracle8 8.0版介紹了DBMS_RANDOM包,Oracle8i 8.1.6版介紹了DBMS_RANDOM包的新功能,但Oracle8i 文檔中沒有詳細全面介紹其功能。幸運的是:有一個新的DBMS_RANDOM包函數能夠返回0-1之間的隨機數。這個新函數是:
◆ FUNCTION value RETURN NUMBER;
◆ FUNCTION value (low IN NUMBER, high IN NUMBER) RETURN NUMBER;
◆ FUNCTION normal RETURN NUMBER;
◆ FUNCTION string (opt char, len NUMBER) RETURN VARCHAR2;

VALUE函數的第一種形式返回一個大於或等於0且小於1的隨機數;第二種形式返回一個大於或等於LOW,小於HIGH的隨機數。下面是其用法的一個示例:
SQL> select dbms_random.value, dbms_random.value(55,100) from al;
VALUE DBMS_RANDOM.VALUE(55,100)
--------------- -----------------------------
.782821936 79.6367038
NORMAL函數返回服從正態分布的一組數。此正態分布標准偏差為1,期望值為0。這個函數返回的數值中有68%是介於-1與+1之間,95%介於-2與+2之間,99%介於-3與+3之間。事實上,這就是你在清單1中所看到的。
最後,是STRING函數。它返回一個長度達60個字元的隨機字元串。參數OPT可以是清單2顯示的值中的任何一個單個字元。
關於這些函數及DBMS_RANDOM包的文件都包含在SQLPlus中:
select text from all_source
where name = 'DBMS_RANDOM'
and type = 'PACKAGE' order by line;

『叄』 SQL語句如何實現從資料庫表中查詢隨機數據的記錄

資料庫的隨機查詢SQL
1.
Oracle,隨機查詢20條
select
*
from
(
select
*
from
表名
order
by
dbms_random.value
)
where
rownum
<=
20;
2.MS
SQL
Server,隨機查詢20條
select
top
20
*
from
表名order
by
newid()
3.My
SQL:,隨機查詢20條
select
*
from
表名
order
by
rand()
limit
20

『肆』 sql中的隨機函數怎麼用

sql server的rand()函數:返回0到1之間的隨機浮點值
round()函數:返回數值表達式,舍入到指定長度或精度。
例如隨機取得0~99之間的數: round(rand()*100,0)
隨機取得100~199之間的數:round(rand()*100+100,0)

『伍』 用sql語句實現按條件隨機取幾條記錄

select * from A where 姓名 in (select 10 姓名 from A where 班級=A班級 order by newid()) order by 班級
其中newid()會隨機從班級里查找10名學生!

『陸』 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為每一行均產生一個隨機數

select
dbms_random.random
from
al;
返回的是binary_integer
類型值,產生任意大小的隨機數(正或者負)binary_integer
,范圍為2的31次方到-2的31次方。
具體還有很多關於隨機數字或者字母的使用,都是關於dbms_random系統包的用法,
例如dbms_random.value
;
dbms_random.normal
;
dbms_random.string
;
可以上網查詢下。

『捌』 使用SQL語句隨機獲取數據

SQL
Server-->
SELECT
TOP
50
*
FROM
TAB_USERS
ORDER
BY
NEWID();
ORACLE-->
SELECT
*
FROM
(SELECT
*
FROM
TAB_USERS
ORDER
BY
DBMS_RANDOM.RANDOM())
WHERE
RONUM<=50
MYSQL-->
SELECT
*
FROM
TAB_USERS
ORDER
BY
RAND()
LIMIT
50
{
ACCESS-->
SELECT
TOP
50
*
FROM
TAB_USERS
ORDER
BY
RND([欄位])
這條語句在ACCESS中的查詢結果是正確的,但在ASP.NET等後台代碼要寫成如下:
Random
random=new
Random(System.Guid.NewGuid().GetHashCode());
int
val=random.Next();
string
sql="SELECT
TOP
50
*
FROM
TAB_USERS
ORDER
BY
RND("+(-r)+"欄位)";
}

『玖』 怎麼用sql語句隨機查詢一條記錄

隨機抽取幾個數據的,打算在php用mt_rand取出隨機的數字,作為數組索引來重新付一個新數組的,結果發現數組太多,資料庫select佔用時間太長,之後發現了下面的方法,拿來分享,不同的資料庫又又不同的處理,那麼就分開介紹一下:Select
a
random
row
with
MySQL:
,SELECT
column
FROM
table

『拾』 使用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

熱點內容
tomcat編譯後的文件 發布:2025-01-23 06:05:46 瀏覽:253
惠普暢遊人14是什麼配置表 發布:2025-01-23 05:57:39 瀏覽:295
簡單搭建ftp伺服器 發布:2025-01-23 05:49:41 瀏覽:227
有qq號沒密碼如何登上 發布:2025-01-23 05:34:08 瀏覽:469
javajsdes加密 發布:2025-01-23 05:33:21 瀏覽:770
qq怎麼上傳視頻到電腦上 發布:2025-01-23 05:07:27 瀏覽:972
如何申請i7伺服器地址 發布:2025-01-23 04:42:15 瀏覽:848
瀏覽器內核源碼 發布:2025-01-23 04:41:34 瀏覽:662
精英版繽智少了些什麼配置 發布:2025-01-23 04:41:30 瀏覽:359
編寫c編譯器 發布:2025-01-23 04:41:30 瀏覽:971