「大哥,看了你這篇博文我怎樣才能產生10個且每個有8位不相同的隨機數字?」
剛才有位網友在skype問及如上問題。
好的,insus.net也正想寫乙個儲存過程來應用上面這篇的sql語句,你可以參考如下的儲存過程,如果還問題請繼續討論。
create
procedure
[dbo].
[usp_randomnumber
] 1
create
procedure
[dbo
]. [
usp_randomnumber
]2 (
3@len
int=
1,
--隨機數字數
4@rows
int=1--
隨機筆數5)
6as7begin
8declare
@tas
table(
[random number
]varchar(
max))
9declare
@lint
=1,
@rint=110
11while
@r<=
@rows
12begin
13declare
@rnvarchar(
max)
=''14
while
@l<=
@len
--隨機產生每個隨數的位數
15begin
16set
@rn=
@rn+
char(
round(
rand()
*9+48, 0))
17set@l=
@l+118
end19
20--
如果產生相同的隨機數,將不會儲存
21if
notexists(
select
[random number
]from
@twhere
[random number]=
@rn)
22begin
23insert
into
@tselect
@rn--
insert into @t ([random number])values (@rn)
24set@r=
@r+1--
記錄總共產生了幾筆隨機數
25set@l=
1--每產生完乙個隨機數之後,將隨機數的位數初始化為1
26end
27end
2829
select
[random number
]from
@t30
(@len
int=
1,
--隨機數字數
@rows
int=1--
隨機筆數)as
begin
declare
@tas
table([
random number
]varchar
(max
))
declare
@lint=1
, @r
int=
1while
@r<=
@rows
begin
declare
@rnvarchar
(max) =
''while
@l<=
@len
--隨機產生每個隨數的位數
begin
set@rn
=@rn
+char
(round
(rand
() *9+
48,0))
set@l=@l
+1end--
如果產生相同的隨機數,將不會儲存
ifnot
exists
(select
[random number
]from
@twhere
[random number]=
@rn)
begin
insert
into
@tselect
@rn--
insert into @t ([random number])values (@rn)
set@r=@r
+1--記錄總共產生了幾筆隨機數
set@l=1
--每產生完乙個隨機數之後,將隨機數的位數初始化為1
endend
select
[random number
]from
@tend
當你把上面的儲存過程附加入資料庫之後,可以執行這個儲存過程:
execute
[dbo].
[usp_randomnumber]8
,10得到的結果(由於是隨機產生,每次execute獲得結果會不一樣)
不重複隨機數
1 不重複隨機數1 生產 lowerbound,upperbound 的隨機數,核心 int upperbound lowerbound 1 rnd lowerbound 示例 如下 sub rndnumnorepeat1 dimdic dim i set dic createobject scri...
不重複的隨機數
大哥,看了你這篇博文我怎樣才能產生10個且每個有8位不相同的隨機數字?剛才有位在skype問及如上問題。好的,insus.net也正想寫乙個儲存過程來應用上面這篇的sql語句,你可以參考如下的儲存過程,如果還問題請繼續討論。create procedure dbo usp randomnumber ...
例子 隨機數 不重複的隨機數
以隨機數是js數學物件的方法之一。math.random 0 1的隨機數這樣使用的範圍就比較小,所以如果想用這個api獲得其它範圍的隨機數的話,就需要使用下面這種 math.random b a 1 a 以上這種寫法是獲取a b的隨機數的寫法,比如想要50 100的隨機數,就應該是 math.ran...