DECLARE @Counter int
SET @Counter = 4
WHILE @Counter <= 10
BEGIN
select @counter
SET @Counter = @counter + 1
END
这是我的代码,结果我得到了4。如果我将我的set @ counter = 4更改为set @ counter = 5,我最后只得到5。我正在使用SAP业务一个查询生成器。这怎么不行?如果我在select @counter
之后放END
我实际得到11 ....所以循环实际上运行
答案 0 :(得分:0)
您的代码似乎对我来说......问题可能在于您编写变量名称的方式。当它是一个变量时,尝试使用相同的大小写:@counter和@Counter。
还尝试使用select而不是set。它们几乎完全相同,但在你的情况下可能会更好。
SELECT @Counter = @Counter + 1
阅读评论后编辑: 如果循环外的选择显示11,请尝试在循环内打印,而不是仅选择是否显示4。
DECLARE @counter int
SET @counter = 4
WHILE @counter<= 10
BEGIN
PRINT @counter
SELECT @counter = @counter + 1
END
答案 1 :(得分:0)
SAP Business One查询管理器只显示第一个select语句的结果。在您的情况下,您可以将所有数据存储在临时表中,并在离开循环时选择该表。
declare @temp table (mynum int)
DECLARE @Counter int
SET @Counter = 4
WHILE @Counter <= 10
BEGIN
insert into @temp select @counter
SET @Counter = @counter + 1
END
select * from @temp