[SQL] 구문에 대한 루프 SQL Server의
SQL구문에 대한 루프 SQL Server의
SQL에서 for 루프의 구문은 무엇입니까?
해결법
-
==============================
1.T-SQL은 루프를하지 않습니다, 그것은 WHILE 루프를 가지고 WHILE (Transact-SQL)를 참조하십시오
T-SQL은 루프를하지 않습니다, 그것은 WHILE 루프를 가지고 WHILE (Transact-SQL)를 참조하십시오
WHILE Boolean_expression BEGIN END
-
==============================
2.이 없음에 대한 루프 만 동안 루프 :
이 없음에 대한 루프 만 동안 루프 :
DECLARE @i int = 0 WHILE @i < 20 BEGIN SET @i = @i + 1 /* do some work */ END
-
==============================
3.아무도 실제로으로 반복 루프 내부의 데이터 세트, 당신은 키워드가 FETCH OFFSET 사용하는 불구하고 방법을 포함하는 대답을 게시하지 않았다처럼 추가 할 수 있습니다.
아무도 실제로으로 반복 루프 내부의 데이터 세트, 당신은 키워드가 FETCH OFFSET 사용하는 불구하고 방법을 포함하는 대답을 게시하지 않았다처럼 추가 할 수 있습니다.
용법
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
-
==============================
4.
DECLARE @intFlag INT SET @intFlag = 1 WHILE (@intFlag <=5) BEGIN PRINT @intFlag SET @intFlag = @intFlag + 1 END GO
-
==============================
5.이건 어때요:
이건 어때요:
BEGIN Do Something END GO 10
당신이 계산해야하는 경우 ... 물론 당신은 그 안에 증분 카운터를 넣을 수 있습니다.
-
==============================
6.루프를 들어 공식적으로 SQL 서버가 아직 지원되지 않습니다. 이미 루프의 다른 방법을 달성에 답이있다. 나는 SQL 서버에서 루프의 다른 유형을 달성하는 방법에 대한 답변을 자세히 설명하고있다.
루프를 들어 공식적으로 SQL 서버가 아직 지원되지 않습니다. 이미 루프의 다른 방법을 달성에 답이있다. 나는 SQL 서버에서 루프의 다른 유형을 달성하는 방법에 대한 답변을 자세히 설명하고있다.
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 버전을 시도 할 수 있습니다, 어쨌든 루프의 첫 번째 반복을 완료해야합니다.
DECLARE @X INT=1; WAY: --> Here the DO statement PRINT @X; SET @X += 1; IF @X<=10 GOTO WAY;
DECLARE @X INT = 1; WAY: -- Here the REPEAT statement PRINT @X; SET @X += 1; IFNOT(@X > 10) GOTO WAY;
참고
-
==============================
7.간단한 대답은 NO입니다!.
간단한 대답은 NO입니다!.
동안 :
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
나는 항상 GOTO 문을 통해 WHILE를 선호합니다.
-
==============================
8.목록 현재 달의 최종 날짜에 시작하는 T-SQL에서 루프 예 동안.
목록 현재 달의 최종 날짜에 시작하는 T-SQL에서 루프 예 동안.
DECLARE @Today DATE= GETDATE() , @StartOfMonth DATE , @EndOfMonth DATE; DECLARE @DateList TABLE ( DateLabel VARCHAR(10) ); SET @EndOfMonth = EOMONTH(GETDATE()); SET @StartOfMonth = DATEFROMPARTS(YEAR(@Today), MONTH(@Today), 1); WHILE @StartOfMonth <= @EndOfMonth BEGIN INSERT INTO @DateList VALUES ( @StartOfMonth ); SET @StartOfMonth = DATEADD(DAY, 1, @StartOfMonth); END; SELECT DateLabel FROM @DateList;
-
==============================
9.그것은, 그것을 배울보십시오 :
그것은, 그것을 배울보십시오 :
DECLARE @r INT = 5 DECLARE @i INT = 0 DECLARE @F varchar(max) = '' WHILE @i < @r BEGIN DECLARE @j INT = 0 DECLARE @o varchar(max) = '' WHILE @j < @r - @i - 1 BEGIN SET @o = @o + ' ' SET @j += 1 END DECLARE @k INT = 0 WHILE @k < @i + 1 BEGIN SET @o = @o + ' *' -- '*' SET @k += 1 END SET @i += 1 SET @F = @F + @o + CHAR(13) END PRINT @F
날짜 :
DECLARE @d DATE = '2019-11-01' WHILE @d < GETDATE() BEGIN PRINT @d SET @d = DATEADD(DAY,1,@d) END PRINT 'n' PRINT @d
from https://stackoverflow.com/questions/6069024/syntax-of-for-loop-in-sql-server by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 사용합니까 ROW_NUMBER ()? (0) | 2020.04.23 |
---|---|
[SQL] 이유는 카운트 (*) "열"의 별칭을 사용하고 HAVING 절에서 참조 할 수 없습니다? (0) | 2020.04.23 |
[SQL] SQL 서버 쿼리에서 0과 NULL 교체 (0) | 2020.04.23 |
[SQL] MySQL의에서 SET 자동 커밋 = 1 START의 TRANSACTION의 차이는 (유무 내가 뭔가를 놓친?) (0) | 2020.04.23 |
[SQL] SQL Server의 문자열에서 모든 공백을 제거 (0) | 2020.04.23 |