我有功课要为踢球锦标赛摆一张桌子。我必须写一个INSERT语句,在其中我将用随机数填充玩家1和玩家2的目标。所以这或多或少是很清楚的。我是这样得到的:
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子句,但它不起作用。总是出现语法错误。
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个人进了更少的球。
发布于 2019-04-04 00:43:25
您可以放入一个小的WHILE循环来测试两个值是否都为10,并计算新的值,直到它们都不是10:
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_NUMBER2https://stackoverflow.com/questions/55499677
复制相似问题