全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3887
推到 Plurk!
推到 Facebook!

sql可以作亂數嗎?

尚未結案
gavinj123
初階會員


發表:88
回覆:48
積分:27
註冊:2002-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-24 09:56:50 IP:211.75.xxx.xxx 未訂閱
我select資料庫會回傳幾萬筆,可是我想要sql用亂數回傳給我100筆, 以前我都是把select回來的幾萬比自已做亂數,請問有沒有可以叫sql直接回傳亂數100筆給我的方法??
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-24 10:09:30 IP:210.58.xxx.xxx 未訂閱
請問gavinj123 兄, 你的Table有沒有一個唯一鍵值的欄位, 譬如流水號之類的, 若有的話可以先在Delphi取亂數後再下SQL抓回來.
------


我不是高手, 高手是正在銀幕前微笑的人.
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-24 16:01:57 IP:147.8.xxx.xxx 未訂閱
If there is an integer column. Try this (MS SQL?) select top 100 random(IntegerField), OtherFields, from Table order by 1 發表人 - william 於 2002/10/24 16:02:41
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-24 17:18:32 IP:210.58.xxx.xxx 未訂閱
引言: If there is an integer column. Try this (MS SQL?) select top 100 random(IntegerField), OtherFields, from Table order by 1 發表人 - william 於 2002/10/24 16:02:41
william先進您好: 我執行時他有個錯誤訊息 'Random' is not a recognized function name 是否哪裡忽略了
------


我不是高手, 高手是正在銀幕前微笑的人.
pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-10-24 17:34:10 IP:61.219.xxx.xxx 未訂閱
你是使用何資料庫呢 是MSSQL嗎
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-10-25 09:11:07 IP:147.8.xxx.xxx 未訂閱
Sorry, I don't have access to any SQL server at the moment. Maybe the function is rnd() or something else? I have tested in MS Access and it is rnd().
gavinj123
初階會員


發表:88
回覆:48
積分:27
註冊:2002-10-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-17 12:11:07 IP:211.75.xxx.xxx 未訂閱
william兄,sql rnd() ,random()裡好像沒有這兩個函式。 Miles兄,我的Table唯一鍵值是身份證id,所以應該是不能在Delphi取亂數後再下SQL。
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-17 13:02:36 IP:61.218.xxx.xxx 未訂閱
MS SQL 亂數指令  rand    Mile兄所講的算是比較簡單易實現的    不然你就必須寫Store procedure 而且…不能用身份證號尋找,要有另一個欄位記錄唯一連續的號碼 (因為…rand 取出的值不可能等於身份證號) rand(以時間當亂數種子)* 所有筆數 然後取Top 100 取得它的id 再以id 去對照身份證號     發表人 - ddy 於 2003/04/17 13:41:15
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-17 13:15:50 IP:218.16.xxx.xxx 未訂閱
有一個想法不知成不成 select top 100 * from table where rand(10) > 9 order by rand(9) 1 我不知 rand 出來的是 int 還是 float 若是 float Order by 還要將 float 變 int 這樣做每次 order by RANDOM 的欄位(假設10個欄位),然後每筆記錄有十分一機會被抽中
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-17 14:07:57 IP:61.218.xxx.xxx 未訂閱
我測試如下: ======================= 資料表 IDno        IDCard      ----------- ----------  1           aaaaaaaa   2           bb         3           dfdsf      4           rewrsf     5           sd         6           fgf        7           fdgfd      8           gfd        9           gfdgf      10          gfdaa      11          gfdhghhgj  12          hg         13          gf         14          fdg        15          fdfsdfsdf  16          sdf        17          ddddd      18          sdfaaa     19          sdfsd      20          hjhgjhg    ======================== 有20筆資料    select * from table1 where idno= cast(RAND( RIGHT(convert(char(23),getdate(),13),3)*1000 ) *20+1 as int)    可以每次執行以亂數帶出一筆 執行100次吧  如果你希望 > 參考看看 < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=8147403&CC=182217">
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-04-17 14:17:19 IP:61.219.xxx.xxx 未訂閱
不說用何種資料庫, 讓大家用猜的喔 如果是
系統時間:2024-07-01 4:11:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!