代码之家  ›  专栏  ›  技术社区  ›  smpa01

如何在sql temp表中传递标量值

  •  0
  • smpa01  · 技术社区  · 4 年前

    我有一个当前查询,如下所示

    DECLARE @start BIGINT =2019, @end BIGINT =2020
    
    DECLARE @yeartable table ( yr BIGINT)
    
    WHILE (@start <= @end)
    BEGIN
        INSERT INTO @yeartable
            SELECT @start
    
        SET @start = @start + 1
    END
    

    我所要做的就是把 @start @end 来自另一个查询的动态值

    为了 @开始

     SELECT MIN(fiscal_year)
     FROM a.b
    

    为了 @结束

    SELECT MAX(fiscal_year)
    FROM a.b
    

    这有可能吗?先谢谢你。

    0 回复  |  直到 4 年前
        1
  •  1
  •   smpa01    4 年前

    我想我找到答案了

            DECLARE 
    @start BIGINT =(SELECT MIN(fiscal_year)
    FROM
    a.b), 
    @end BIGINT = (SELECT MAX(fiscal_year) 
    FROM
    a.b])
    
    DECLARE @yeartable table ( yr BIGINT)
    
    while (@start <= @end)
    begin
        insert into @yeartable
        select @start
    
        set @start = @start+1
    end
    
        2
  •  0
  •   iceblade    4 年前

    您可以这样分配变量:

    SELECT @start = MIN(fiscal_year)
        FROM a.b
    
    SELECT @end = MAX(fiscal_year)
        FROM a.b