如何在SQL临时表中动态传递标量值

问题描述

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

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

对于@start,我将使用

 SELECT MIN(fiscal_year)
 FROM a.b

对于@end,我将使用

SELECT MAX(fiscal_year)
FROM a.b

这有可能吗?预先谢谢你。

解决方法

我想我找到了答案

        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
,

您可以通过以下方式分配变量:

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...