首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有一种方法可以将随机数插入到已经存在的表中?

有没有一种方法可以将随机数插入到已经存在的表中?
EN

Stack Overflow用户
提问于 2019-04-04 00:09:26
回答 1查看 50关注 0票数 0

我有功课要为踢球锦标赛摆一张桌子。我必须写一个INSERT语句,在其中我将用随机数填充玩家1和玩家2的目标。所以这或多或少是很清楚的。我是这样得到的:

代码语言:javascript
运行
复制
DECLARE @MAX_VALUE INT = 10, @MIN_VALUE INT = 0, @RANDOM_NUMBER INT;
SELECT @Random_Number = FLOOR((@Max_Value - @Min_Value + 1)
* RAND() + @Min_Value)

DECLARE @RANDOM_NUMBER2 INT;
SELECT @Random_Number2 = FLOOR((@Max_Value - @Min_Value + 1)
* RAND() + @Min_Value)


INSERT INTO dbo.SpielTabelle
VALUES(4,1,3,@RANDOM_NUMBER,@RANDOM_NUMBER2)

现在的问题是,如果一个人赢得了10 (这就是为什么最大值是10),而我不希望第二个数字也是10,我如何在其中包含一个if子句?

这是针对SQL Server 2017的,我试图包含一个if子句,但它不起作用。总是出现语法错误。

代码语言:javascript
运行
复制
DECLARE @MAX_VALUE INT = 10, @MIN_VALUE INT = 0, @RANDOM_NUMBER INT;
SELECT @Random_Number = FLOOR((@Max_Value - @Min_Value + 1)
* RAND() + @Min_Value)

DECLARE @RANDOM_NUMBER2 INT;
SELECT @Random_Number2 = FLOOR((@Max_Value - @Min_Value + 1)
* RAND() + @Min_Value)


INSERT INTO dbo.SpielTabelle
VALUES(4,1,3,@RANDOM_NUMBER,@RANDOM_NUMBER2)

我希望在决赛时,我只需要输入新的游戏ID,然后它会自动填充其他所有内容,每场比赛都有一个人进了10个球,1个人进了更少的球。

EN

回答 1

Stack Overflow用户

发布于 2019-04-04 00:43:25

您可以放入一个小的WHILE循环来测试两个值是否都为10,并计算新的值,直到它们都不是10:

代码语言:javascript
运行
复制
DECLARE @MAX_VALUE INT = 10, @MIN_VALUE INT = 0, @RANDOM_NUMBER INT;
SELECT @Random_Number = FLOOR((@Max_Value - @Min_Value + 1)
* RAND() + @Min_Value)

DECLARE @RANDOM_NUMBER2 INT;
SELECT @Random_Number2 = FLOOR((@Max_Value - @Min_Value + 1)
* RAND() + @Min_Value)

WHILE @RANDOM_NUMBER=10 and @RANDOM_NUMBER2=10
BEGIN
SET @Random_Number = FLOOR((@Max_Value - @Min_Value + 1)
* RAND() + @Min_Value)

SET @Random_Number2 = FLOOR((@Max_Value - @Min_Value + 1)
* RAND() + @Min_Value)
END

select 4,1,3,@RANDOM_NUMBER,@RANDOM_NUMBER2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55499677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档