我需要创建一个存储过程,它可以检查给定的起始年份和结束年份之间是否存在年份,并返回存在的年份。例如,如果我提供2000作为开始年,2005作为结束年,那么它应该返回表中存在的年份。我已经尝试了以下代码,但它不起作用。
ALTER PROCEDURE [dbo].[CheckExistenceforyear]
@StYear int = 0,
@EdYear int = 0,
@SubStationID int = 0,
@YrString varchar(255) = null Output
AS
BEGIN
SET NOCOUNT ON;
Declare @TempValue varchar(4)
if @StYear <= @EdYear
while @StYear <= @EdYear
Begin
if (select Count(Sub.Year) from table sub where Sub.Year=@StYear and Sub.SubStationID = @SubStationID) > 0
Begin
select @TempValue=Sub.Year from table as sub where Sub.Year=@StYear and Sub.SubStationID = @SubStationID
set @YrString = @YrString + @TempValue
End
set @StYear = @StYear +1
End
Else
return -1
select @YrString
END
发布于 2013-01-05 05:04:05
您可以使用简单的查询,如
SELECT DISTINCT YEAR FROM TABLE WHERE YEAR BETWEEN STARTYEAR AND ENDYEAR.
运算符在WHERE子句中用于选择两个值之间的数据范围。
https://stackoverflow.com/questions/14168671
复制