⑴ sqlserver 兩表查詢1對多,隨機取一條數據 求sql語句
你兩個表的 [track artist] 各弄出一點貼出來看看
主要是看看 要用 like 還是要用 = 號
或者是有什麼明顯的特徵
如果是有相同的 那麼就簡單了
UPDATEruSETisrc=(SELECTTOP1isrcfromjibiaowhere[artist]=ru.[artist])
你要更新多歌欄位 就參考這個去修改一下
⑵ SQL語句如何按照概率隨機抽取數據
--題目沒有表達清楚,我就寫個差不多的sql給你吧。
--通過case語句來判斷返回一個概率
selectid,state
casestatewhen1then0.1when2then0.3else0.05endas概率
from表a
⑶ 在SQL SERVER 2000中怎麼用SQL語句隨機提取100條數據如題 謝謝了
一. 你可以試試這個: select * from xx order by rand() limit 100 二. 是利用系統時間來取隨機數的代碼,用C++寫的。你參看一下吧。 你可以把隨機數的范圍限定在0 -- 100 ,之內,作為數組的下標就可以訪問了。 #include <iostream.h> #include <stdlib.h> #include <time.h> int main() { srand((unsigned int) time(NULL)); int i ,j = 1,array[10] ; while(j != 0) { for(i = 0;i < 10;i++) { array[i] = rand(); cout<<array[i]<<endl ; } cin>>j ; } system("PAUSE"); return 0; }
⑷ 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
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
用這樣的方法就可以得到。我們想要結果了。不信的話你可以去試試。
⑹ 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)方案縮小了查詢的范圍,在查詢大表,且要提取數據不是很不多的情況下,會對查詢速度上有一定的提高
⑺ [Oracle]從一個表中隨機取出6條記錄的sql語句
1、打開sql server 可視化工具。
⑻ 關於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
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語句取隨機數的方法
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