选择无重复的随机数。 [英] Select random number without duplicate.

查看:67
本文介绍了选择无重复的随机数。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

现在我想从给定范围内的数据库记录1-10000中选择1个随机数。并且还检查已存在的随机数是否存在意味着选择新数字。

Now i want to select the 1 random Number from database records 1-10000 in the given range.And also check the random number is already exist are not if exist means select new number.

推荐答案

我会在容器中插入数字 1..1000 (例如List< int>)然后删除所有已记录在数据库并最终在提醒中随机选择。
I would insert then numbers 1..1000 in a container (e.g. a List<int>) then remove all the ones already recorded in the database and eventually randomly choose among the remining ones.


---创建下面的函数生成随机数



创建功能dbo .RandomNumber()

返回INT

AS

BEGIN

DECLARE @Result INT



SET @Result = CRYPT_GEN_RANDOM(2)



返回案例

WHEN @Result< 60000

OR @@ NESTLEVEL = 32那么@Result%10000

ELSE dbo.RandomNumber()

END

END



---使用函数插入生成的随机数



DECLARE @Number INT

GenerateNumber:

select @ Number = dbo.RandomNumber()

如果存在(从[表格中选择*,其中数字= @数字)

GOTO GenerateNumber;

Else

Insert @Number
---Create Below function to generate Random Number

CREATE FUNCTION dbo.RandomNumber()
RETURNS INT
AS
BEGIN
DECLARE @Result INT

SET @Result = CRYPT_GEN_RANDOM(2)

RETURN CASE
WHEN @Result < 60000
OR @@NESTLEVEL = 32 THEN @Result % 10000
ELSE dbo.RandomNumber()
END
END

---Use function to insert generated Random Number

DECLARE @Number INT
GenerateNumber:
select @Number=dbo.RandomNumber()
If Exists(select * from [Table] where number=@Number)
GOTO GenerateNumber;
Else
Insert @Number


do
  {
      number = random.Next();
  } while (randomNumbers.Contains(number));







试试这个




try this


这篇关于选择无重复的随机数。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆