Sql server 如何在SQL临时表中动态传递标量值
我有一个当前查询,如下所示Sql server 如何在SQL临时表中动态传递标量值,sql-server,tsql,Sql Server,Tsql,我有一个当前查询,如下所示 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 对于@end,我将使用 SELECT MIN(fiscal_yea
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
对于@end,我将使用
SELECT MIN(fiscal_year)
FROM a.b
SELECT MAX(fiscal_year)
FROM a.b
这可能吗?提前感谢。您可以通过以下方式分配变量:
SELECT @start = MIN(fiscal_year)
FROM a.b
SELECT @end = 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
解决这类问题最好使用数字表,而不是循环。这样的表比参数化的WHERE更容易接受,或者您可以使用表值函数。@jeroenmoster您能给我一个查询示例吗