• sql 两个数字范围取随机数


    常用到通过两个数字之间获取随机数,C#中有内置方法,数据库中没有。以前有找到过一个方法,是通过数据库自定义函数实现,但是找不到了,今天自己写了个,记录下来备用!

    代码如下:

    if exists(select * from sys.objects where name = 'f_random')
        drop function f_random
    go
    /*
    两个数之间获取随机数
    */
    create function f_random
    (
        @min_num int,
        @max_num int
    )
    returns int
    as
    begin
        declare @basicnumber decimal(18,9)    --基数
        declare @randnumber decimal(18,9--随机数
        if @max_num <= 10
            set @basicnumber = 10
        else if @max_num <= 100
            set @basicnumber = 100
        else if @max_num <= 1000
            set @basicnumber = 1000
        else if @max_num <= 10000
            set @basicnumber = 10000
        while 1 = 1
        begin
            select @randnumber = randvalue from vRandom
            set @randnumber = @randnumber * @basicnumber
            if @randnumber >= @min_num and @randnumber < @max_num
                break
            else
                continue
        end
        return cast(@randnumber as int)
    end
    go

    使用方法:

    select dbo.f_random(1,100) as randnum    

    一定要加dbo!

    专注iOS、Android、Java、Golang开发等涉及开发管理相关。 技术博客:http://xiaopin.cnblogs.com
  • 相关阅读:
    PAT:1075. PAT Judge (25) AC
    PAT:1010. 一元多项式求导 (25) AC
    PAT:1076. Forwards on Weibo (30) AC
    PAT:1086. Tree Traversals Again (25) AC
    PAT:1020. Tree Traversals (25) AC
    PAT:1051. Pop Sequence (25) AC
    PAT:1063. Set Similarity (25) AC
    PAT:1017. A除以B (20) AC
    C语言指针
    iOS block
  • 原文地址:https://www.cnblogs.com/xiaopin/p/2781129.html
Copyright © 2020-2023  润新知