我有作业来为踢球比赛设置桌子。我必须写一个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,然后它会自动填充其他所有内容,每个游戏都有1个人的目标是10个进球,而1个人的目标是更少。
答案 0 :(得分:0)
您可以放入一个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_NUMBER2