SQL中生成随机数

 

SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
           + (DATEPART(ss, GETDATE()) * 1000 )
           + DATEPART(ms, GETDATE()) )

select RAND(DATEPART(mm, GETDATE()))
select DATEPART(ss, GETDATE())
select DATEPART(ms, GETDATE())


--随机数:0-9[数字范围]
declare @m as int;
declare @n as int;
set @m=0;
set @n=9;
select   cast(cast((rand()*(@m-@n)+@n) as int) as char(1))

--随机数:5位[数字范围]
declare @m as int;
declare @n as int;
set @m=0;
set @n=9;
select  cast(cast((rand()*(@m-@n)+@n) as int) as char(1))
    + cast(cast((rand()*(@m-@n)+@n) as int) as char(1))
    + cast(cast((rand()*(@m-@n)+@n) as int) as char(1))
    + cast(cast((rand()*(@m-@n)+@n) as int) as char(1))
    + cast(cast((rand()*(@m-@n)+@n) as int) as char(1))

--随机数:1位[字母范围]
declare @a as int;
declare @z as int;
declare @str as char(26);

set @a=1;
set @z=26;
set @str='ABCDEFGHIZKLMNOPQRSTUVWXYZ';
select   substring(@str,cast((rand()*(@a-@z)+@z) as int),1)

--随机数:5位[字母范围]
declare @a as int;
declare @z as int;
declare @str as char(26);

set @a=1;
set @z=26;
set @str='ABCDEFGHIZKLMNOPQRSTUVWXYZ';
select   substring(@str,cast((rand()*(@a-@z)+@z) as int),1)
    + substring(@str,cast((rand()*(@a-@z)+@z) as int),1)
    + substring(@str,cast((rand()*(@a-@z)+@z) as int),1)
    + substring(@str,cast((rand()*(@a-@z)+@z) as int),1)
    + substring(@str,cast((rand()*(@a-@z)+@z) as int),1)

--随机数:8位[数字字母混合]
declare @i as int;
declare @m as int;
declare @n as int;
declare @a as int;
declare @z as int;
declare @str as char(26);
declare @result as varchar(8);

set @i=0;
set @m=0;
set @n=9;
set @a=1;
set @z=26;
set @str='ABCDEFGHIZKLMNOPQRSTUVWXYZ';
set @result='';

while @i < 8
begin
    if(cast((rand()*(1-4)+4) as int)%3=0)
        set @result=@result+substring(@str,cast((rand()*(@a-@z)+@z) as int),1);--字母
    else
        set @result=@result+cast(cast((rand()*(@m-@n)+@n) as int) as char(1));--数字
   
    set @i = @i+1;
end

print(@result);
 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值