for
TSQL 에서 루프 구문은 무엇입니까 ?
답변
T-SQL에는 FOR
루프 가없고 WHILE
루프가 있습니다.
WHILE (Transact-SQL)
WHILE Boolean_expression
BEGIN
END
답변
for 루프는없고 while 루프 만 있습니다 :
DECLARE @i int = 0
WHILE @i < 20
BEGIN
SET @i = @i + 1
/* do some work */
END
답변
추가 정보
아무도 루프 내부의 데이터 세트를 실제로 반복하는 방법을 포함하는 답변을 아무도 게시하지 않았기 때문에 키워드 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
답변
DECLARE @intFlag INT
SET @intFlag = 1
WHILE (@intFlag <=5)
BEGIN
PRINT @intFlag
SET @intFlag = @intFlag + 1
END
GO
답변
이건 어때요:
BEGIN
Do Something
END
GO 10
… 카운트해야 할 경우 증분 카운터를 넣을 수 있습니다.
답변
For 루프는 아직 SQL Server에서 공식적으로 지원되지 않습니다. 이미 FOR 달성에 대한 답변이 있습니다 Loop의 다양한 방식 있습니다. SQL Server에서 다양한 유형의 루프를 달성하는 방법에 대한 답변을 자세히 설명합니다.
FOR 루프
DECLARE @cnt INT = 0;
WHILE @cnt < 10
BEGIN
PRINT 'Inside FOR LOOP';
SET @cnt = @cnt + 1;
END;
PRINT 'Done FOR LOOP';
알다시피, 어쨌든 루프의 첫 번째 반복을 완료 해야하는 경우 SQL 서버의 DO..WHILE 또는 REPEAT..UNTIL 버전을 시도 할 수 있습니다 .
DO..WHILE 루프
DECLARE @X INT=1;
WAY: --> Here the DO statement
PRINT @X;
SET @X += 1;
IF @X<=10 GOTO WAY;
반복 .. UNTIL 루프
DECLARE @X INT = 1;
WAY: -- Here the REPEAT statement
PRINT @X;
SET @X += 1;
IFNOT(@X > 10) GOTO WAY;
답변
간단한 대답은 NO !!
입니다.
FOR
SQL 에는 없지만 , 작동 방식을 사용WHILE
하거나GOTO
달성 할 수 있습니다FOR
.
동안 :
DECLARE @a INT = 10
WHILE @a <= 20
BEGIN
PRINT @a
SET @a = @a + 1
END
이동 :
DECLARE @a INT = 10
a:
PRINT @a
SET @a = @a + 1
IF @a < = 20
BEGIN
GOTO a
END
나는 항상 진술 WHILE
보다 선호 한다 GOTO
.