日期:2014-05-19  浏览次数:20546 次

再开贴,大侠给看看用sql取当前年的前后10年的一个查询,急!
例如今年2007年,用sql取一个查询结果为(没有任何表的情况下):

列名A
1998
1999
2000
...
2007
2008
2017


------解决方案--------------------
--改进一下mschen(Co-ok)的(少了一年)
--加多一个参数:前后的年数

--创建函数
create function dbo.fn_GetYear(@Year int,@Num int)
returns @tb table([Year] int)
as
begin
declare @i int
set @i=@Year-@Num
while(@i <=@Year+@Num)
begin
insert @tb select @i
set @i=@i+1
end
return
end
go

--调用函数
select * from dbo.fn_GetYear(2007,2)
go

--删除环境
drop function fn_GetYear

--结果
/*
Year
2005
2006
2007
2008
2009
*/