복붙노트

[SQL] 구문에 대한 루프 SQL Server의

SQL

구문에 대한 루프 SQL Server의

SQL에서 for 루프의 구문은 무엇입니까?

해결법

  1. ==============================

    1.T-SQL은 루프를하지 않습니다, 그것은 WHILE 루프를 가지고 WHILE (Transact-SQL)를 참조하십시오

    T-SQL은 루프를하지 않습니다, 그것은 WHILE 루프를 가지고 WHILE (Transact-SQL)를 참조하십시오

    WHILE Boolean_expression
    BEGIN
    
    END
    
  2. ==============================

    2.이 없음에 대한 루프 만 동안 루프 :

    이 없음에 대한 루프 만 동안 루프 :

    DECLARE @i int = 0
    
    WHILE @i < 20
    BEGIN
        SET @i = @i + 1
        /* do some work */
    END
    
  3. ==============================

    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. ==============================

    4.

    DECLARE @intFlag INT
    SET @intFlag = 1
    WHILE (@intFlag <=5) 
    BEGIN
        PRINT @intFlag
        SET @intFlag = @intFlag + 1
    END
    GO
    
  5. ==============================

    5.이건 어때요:

    이건 어때요:

    BEGIN
       Do Something
    END
    GO 10
    

    당신이 계산해야하는 경우 ... 물론 당신은 그 안에 증분 카운터를 넣을 수 있습니다.

  6. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    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
    
  10. from https://stackoverflow.com/questions/6069024/syntax-of-for-loop-in-sql-server by cc-by-sa and MIT license