mssql隨機數
mssql有乙個函式char()是將int(0-255) ascii**轉換為字元。那我們可以使用下面ms sql語句,可以隨機生成小寫、大寫tkqny字母,特殊字元和數字。
大寫字母:
char(round(rand() * 25 + 65,0))
小寫字母:
char(round(rand() * 25 + 97,0))
特殊字元:
char(round(rand() * 13 + 33,0))
數字:
char(round(rand() * 9 + 48,0))
剛才有位網友在skype問及如上問題。
好的,insus.net也正想寫乙個儲存過程來應用上面這篇的sql語句,你可以參考如下的儲存過程,如果還問題請繼續討論。
複製** **如下:
usp_randomnumber
create procedure [dbo].[usp_randomnumber]
( @len int = 1, --隨機數字數
@rows int = 1 --隨機筆www.cppcns.com數
) as
begin
declare @t as table([random number] varchar(max))
declare @l int = 1, @r int = 1
while @r <= @rows
begin
declare @rn varchar(max) = ''
while @l <= @len --隨機產生每個隨數的位數
begin
set @rn = @rn + char(round(rand() * 9 + 48,0))
set @l = @l + 1
end
--如果產生相同的隨機數,將不會儲存
if not exists(select [random number] from tkqny@t where [random number] = @rn)
begin
insert into @t select @rn --insert into @t ([random number])values (@rn)
set @r = @r + 1 --記錄總共產生了幾筆隨機數
set @l = 1 -- 每產生完乙個隨機數之後,將隨機數www.cppcns.com的位數初始化為1
end
end
select [random number] from @t
end
當你把上面的儲存過程附加入資料庫之後,可以執行這個儲存過程:
複製** **如下:
execute [dbo].[usp_randomnumber] 8,10
得到的結果(由於是隨機產生,每次execute程式設計客棧獲得結果會不一樣)
本文標題: sqlserver 不重複的隨機數
本文位址:
不重複隨機數
1 不重複隨機數1 生產 lowerbound,upperbound 的隨機數,核心 int upperbound lowerbound 1 rnd lowerbound 示例 如下 sub rndnumnorepeat1 dimdic dim i set dic createobject scri...
隨機生成不重複的資料
1 js生成不重複的隨機數 方法一 傳入乙個最大允許生成的引數。隨機生成十個不重複的資料出來 param是生成的最大數 function getnewrandomstr param if isequ i else num num.length val for var j 0 j num.length...
不重複的隨機數
大哥,看了你這篇博文我怎樣才能產生10個且每個有8位不相同的隨機數字?剛才有位在skype問及如上問題。好的,insus.net也正想寫乙個儲存過程來應用上面這篇的sql語句,你可以參考如下的儲存過程,如果還問題請繼續討論。create procedure dbo usp randomnumber ...