sql >> Databasteknik >  >> RDS >> Sqlserver

Gör medan loop i SQL Server 2008

Jag är inte säker på DO-WHILE i MS SQL Server 2008 men du kan ändra din WHILE-looplogik, så att den kan ANVÄNDA som DO-WHILE-loop.

Exempel är hämtade härifrån:http://blog.sqlauthority.com/2007/10/24/sql-server-simple-example-of-while-loop-with-continue-and-break-keywords/

  1. Exempel på WHILE Loop

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

    Resultatuppsättning:

    1
    2
    3
    4
    5
    
  2. Exempel på WHILE-loop med BREAK-sökord

    DECLARE @intFlag INT
    SET @intFlag = 1
    WHILE (@intFlag <=5)
    BEGIN
        PRINT @intFlag
        SET @intFlag = @intFlag + 1
        IF @intFlag = 4
            BREAK;
    END
    GO
    

    Resultatuppsättning:

    1
    2
    3
    
  3. Exempel på WHILE-loop med CONTINUE- och BREAK-sökord

    DECLARE @intFlag INT
    SET @intFlag = 1
    WHILE (@intFlag <=5)
    BEGIN
        PRINT @intFlag
        SET @intFlag = @intFlag + 1
        CONTINUE;
        IF @intFlag = 4 -- This will never executed
            BREAK;
    END
    GO
    

    Resultatuppsättning:

    1
    2
    3
    4
    5
    

Men försök att undvika loopar på databasnivå.Referens.



  1. Oracles återgång till användning i Java (JDBC, Prepared Statement)

  2. En introduktion till SQL-index

  3. Tidszonkonvertering i SQL-fråga

  4. Justera dina Avg()-resultat i SQLite med nyckelordet DISTINCT