不重複的隨機數 儲存過程

2021-09-08 23:49:21 字數 2661 閱讀 4986

「大哥,看了你這篇博文我怎樣才能產生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...