Can I loop through a table variable in T-SQL?

后端 未结 11 650
轮回少年
轮回少年 2020-12-04 07:47

Is there anyway to loop through a table variable in T-SQL?

DECLARE @table1 TABLE ( col1 int )  
INSERT into @table1 SELECT col1 FROM table2

11条回答
  •  北荒
    北荒 (楼主)
    2020-12-04 08:23

    Select Top 1 can easily resolve it without the need of any sequence/order.

    Create Function Test_Range()
    Returns
    @Result Table (ID Int)
    As
    Begin
    
    Declare @ID Varchar(10) = ''
    Declare @Rows Int, @Row Int = 0
    Declare @Num Int, @RangeTo Int
    
    Declare @RangeTable Table (ID Varchar(10), RangeFrom Int, RangeTo Int)
    Insert Into @RangeTable Values ('A', 1, 10)
    Insert Into @RangeTable Values ('B', 25,30)
    
    Set @Rows = (Select Count(*) From @RangeTable)
    
    While @Row <= @Rows
    Begin
        Set @Row = @Row + 1
        Select Top 1 @ID = ID, @Num = RangeFrom, @RangeTo = RangeTo  From @RangeTable
        Where ID > @ID
        While @Num <= @RangeTo
        Begin
            Insert Into @Result Values (@Num)
            Set @Num = @Num + 1
        End
    End
    Return
    End
    

提交回复
热议问题