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

sql隨機抽取一半的數據

發布時間: 2023-02-16 03:45:15

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取欄位中某一部分特定數值

如果只是固定取"20/30"比較容易, 只需找到"20/30"在此字元串的開始位置,再截取5個字元的長度就可以了,如:
SELECT CASE WHEN CHARINDEX('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', '20/30') > 0 THEN SUBSTRING('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', CHARINDEX('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', '20/30'),5) ELSE '' END

如果不一定是20/30,而是與"/"前後關聯的數字(eg: 14/20, 33/66,等...),就麻煩了,你可能需要寫一個抽取字元串的函數,如: f_substr(),然後在SQL里調用:
select 用戶.f_substr('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg')

❸ SQL語句如何按照概率隨機抽取數據

--題目沒有表達清楚,我就寫個差不多的sql給你吧。
--通過case語句來判斷返回一個概率
selectid,state
casestatewhen1then0.1when2then0.3else0.05endas概率
from表a

❹ 如何從access資料庫中用SQL語句隨機抽取一條數據

首先看一下你的數據量多不多!
不過一般使用Access的數據也不會太多!

你可以這樣做,用一個數組,將資料庫中的記錄不會有重復的列的值儲存下來。
然後使用隨機函數,從數組中抽區隨機一個!
例子:
Dim DBVal()
………………(省略從資料庫中讀取數據的代碼)
這里要強調一點,你資料庫中的記錄有多少條,你就要重新定義數組的維數上限
可以使用Redim關鍵字
Redim DBVal(1 To [資料庫游標].RecordCount)

然後就可以開始抽選了:
Dim intRecordNum
Randomize '如果你的程序只抽取一條記錄,則可以不要這個
intRecordNum = Int((UBound(DBVal) - 1) * Rnd) + 1

到這里,已經可以得出想要抽取的記錄關鍵字了,你可以根據DBVal(intRecordNum)作為條件,搜索資料庫中與該變數相符合的數據

❺ 使用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

❻ 怎樣從sql資料庫中一次隨機讀取一條數據,而且以後隨機讀取出的數據不能和以前每次隨機讀取出的數據重復

一個簡單的辦法是你另外建一個歷史記錄表,每次問題抽出來後把那問題插到歷史表中,當你抽下一提時只抽取歷史表中不存在的題目就可以了.

❼ 怎樣用sql語句取一張表的一半數據

select test,count(test) from test group by test having count(test)>1可以知道重復幾次,不需要知道幾次可以用select test from test group by test having count(test)>1

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

vaela

❽ 怎樣用sql語句取一張表的一半數據

select
test,count(test)
from
test
group
by
test
having
count(test)>1可以知道重復幾次,不需要知道幾次可以用select
test
from
test
group
by
test
having
count(test)>1
如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!
vaela

❾ php+mssql怎樣隨機從資料庫里抽取某些數據不好意思啊,實在沒有分了,只有15分了。在線等!!!!!!!

有三種方法
1.你可以通過sql隨機查詢來實現。
要隨機數據量不大建議用以下方法:
2.php打亂數組,然後截取。
3.php數組循環賦值到js變數,再打亂截取。

❿ 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
用這樣的方法就可以得到。我們想要結果了。不信的話你可以去試試。