mssql隨機數
mssql有乙個函式char()是將int(0-255) ascii**轉換為字元。那我們可以使用下面ms sql語句,可以隨機生成小寫、大寫字母,特殊字元和數字。
大寫字母:
char(round(rand() * 25 + 65,0))
小寫字母:
char(round(rand() * 25 + 97,0))
特殊字元:
char(round(rand() * 13 + 33,0))
數字:
char(round(rand() * 9 + 48,0))
寫乙個儲存過程來應用上面這篇的sql語句:
up_randomnumber當你把上面的儲存過程附加入資料庫之後,可以執行這個儲存過程:create procedure [dbo].[usp_randomnumber]
(@len int = 1, --隨機數字數
@rows int = 1 --隨機筆數)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 @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 -- 每產生完乙個隨機數之後,將隨機數的位數初始化為1
endend
select [random number] from @t
end
execute [dbo].[up_randomnumber] 8,10得到的結果(由於是隨機產生,每次execute獲得結果會不一樣)
生成4位不重複的字串
實際的業務場景中需要生成4位不重複的字串,這個場景比較特殊,不具有普遍性,正常場景的唯一單號都不會只有4位。最先想到的是隨機生成4位字串,字元包括數字 大小寫字母一共62位,基本可以滿足使用要求,但是越到後面,重複的概率就會越大。想要保證不重複,可以加入時間戳,機器id等,類似雪花演算法的思路,但是...
隨機生成52個不重複的數字
生成五十二個隨機數,存放在陣列中,範圍是1 52,不允許重複,最後在螢幕上顯示出來。小小思路,不成敬意 有專案學習想法的讀者可以利用這個思路研究一下,ai鬥地主等撲克類的遊戲是如何開發的。include include include 生成五十二個隨機數,存放在陣列中,範圍是1 52,不允許重複,最...
Jmeter生成8位不重複的隨機數
預設該公式精確到毫秒級別,13位數 該公式精確到秒級別,10位數 如果引數需要為當前日期,那公式為 要求 對註冊介面進行100000次壓測,手機號已126開頭,後面的8位數不限 前言 在進行測試中,我們需要對註冊介面進行壓測100000次,那麼就要求手機號碼每次填寫的不一致,否則手機號使用一次後會出...