반응형
SQL Server에서 for-loop의 구문
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
DECLARE @intFlag INT
SET @intFlag = 1
WHILE (@intFlag <=5)
BEGIN
PRINT @intFlag
SET @intFlag = @intFlag + 1
END
GO
추가 정보
아무도 루프 내부의 데이터 세트를 실제로 반복하는 방법을 포함하는 답변을 아무도 게시하지 않았기 때문에 키워드 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
이건 어때요:
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
.
현재 월의 시작 날짜와 종료 날짜를 나열하는 T-SQL의 While 루프 예제
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;
참고 URL : https://stackoverflow.com/questions/6069024/syntax-of-for-loop-in-sql-server
반응형
'Programing' 카테고리의 다른 글
레일 부분 템플릿의 선택적 로컬 변수 : (정의 된 foo) 혼란에서 어떻게 벗어날 수 있습니까? (0) | 2020.04.25 |
---|---|
마우스 이벤트 전파 중지 (0) | 2020.04.25 |
jquery DataTables의 초기 정렬을 비활성화하는 방법이 있습니까? (0) | 2020.04.25 |
데이터 형식, NOT NULL 및 PRIMARY KEY 제약 조건과 함께 테이블의 열 목록을 가져 오는 SQL Server 쿼리 (0) | 2020.04.25 |
스토리 보드를 iPhone에서 iPad로 변환 (0) | 2020.04.25 |