TcK*_*cKs 345
没有for循环,只有while循环:
DECLARE @i int = 0
WHILE @i < 20
BEGIN
SET @i = @i + 1
/* do some work */
END
Run Code Online (Sandbox Code Playgroud)
jam*_*ams 200
T-SQL没有FOR
循环,它有一个WHILE
循环
WHILE(Transact-SQL)
WHILE Boolean_expression
BEGIN
END
Run Code Online (Sandbox Code Playgroud)
小智 28
DECLARE @intFlag INT
SET @intFlag = 1
WHILE (@intFlag <=5)
BEGIN
PRINT @intFlag
SET @intFlag = @intFlag + 1
END
GO
Run Code Online (Sandbox Code Playgroud)
Dan*_*ndy 27
只是添加为没有人发布了一个答案,其中包括如何实际迭代循环内的数据集,您可以使用关键字OFFSET FETCH.
用法
DECLARE @i INT = 0;
SELECT @count= Count(*) FROM TABLE
WHILE @i <= @count
BEGIN
SELECT * FROM TABLE
ORDER BY COLUMN
OFFSET @i ROWS
FETCH NEXT 1 ROWS ONLY
SET @i = @i + 1;
END
Run Code Online (Sandbox Code Playgroud)
小智 7
这个怎么样:
BEGIN
Do Something
END
GO 10
Run Code Online (Sandbox Code Playgroud)
...当然,如果需要计算,你可以在里面放一个增量计数器.
SQL服务器尚未正式支持for循环.已经有了实现FOR Loop不同方式的答案.我正在详细说明如何在SQL Server中实现不同类型的循环.
DECLARE @cnt INT = 0;
WHILE @cnt < 10
BEGIN
PRINT 'Inside FOR LOOP';
SET @cnt = @cnt + 1;
END;
PRINT 'Done FOR LOOP';
Run Code Online (Sandbox Code Playgroud)
如果你知道,你需要完成循环的第一次迭代,那么你可以尝试DO..WHILE或REPEAT..UNTIL版本的SQL服务器.
DECLARE @X INT=1;
WAY: --> Here the DO statement
PRINT @X;
SET @X += 1;
IF @X<=10 GOTO WAY;
Run Code Online (Sandbox Code Playgroud)
DECLARE @X INT = 1;
WAY: -- Here the REPEAT statement
PRINT @X;
SET @X += 1;
IFNOT(@X > 10) GOTO WAY;
Run Code Online (Sandbox Code Playgroud)
简单的答案是NO !!
.
FOR
在SQL 中没有,但你可以使用WHILE
或GOTO
实现如何FOR
工作的方式.
时间:
DECLARE @a INT = 10
WHILE @a <= 20
BEGIN
PRINT @a
SET @a = @a + 1
END
Run Code Online (Sandbox Code Playgroud)
去 :
DECLARE @a INT = 10
a:
PRINT @a
SET @a = @a + 1
IF @a < = 20
BEGIN
GOTO a
END
Run Code Online (Sandbox Code Playgroud)
我总是喜欢WHILE
过度GOTO
陈述.
归档时间: |
|
查看次数: |
555452 次 |
最近记录: |