选择无重复的随机数。 [英] Select random number without duplicate.
本文介绍了选择无重复的随机数。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
现在我想从给定范围内的数据库记录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屋!
查看全文