CREATE FUNCTION GetPhaseCode(@NowValue decimal,@StepLength decimal,@MaxLenth decimal)
RETURNS int
AS
BEGIN
Declare @FinValue int,@PhaseValue int
if @NowValue>=0
begin
if @NowValue=0 set @PhaseValue=1
else
set @PhaseValue=(@NowValue-1)/@StepLength+1
set @FinValue=
case
when @PhaseValue>(@MaxLenth/@StepLength) then (@MaxLenth/@StepLength)
ELSE @PhaseValue
end
end
else
set @FinValue=0
RETURN @FinValue
END
CREATE FUNCTION GetPhaseName(@NowValue decimal,@StepLength decimal,@MaxLenth decimal)
RETURNS varchar(30)
AS
BEGIN
Declare @FinValue varchar(30),@PhaseValue int
if @NowValue>=0
begin
if @NowValue=0 set @PhaseValue=1
else
set @PhaseValue=(@NowValue-1)/@StepLength+1
set @FinValue=
case
when @PhaseValue=1 then convert(varchar(10),@StepLength)+'元以下'
when @PhaseValue>(@MaxLenth/@StepLength) then
convert(varchar(10),@MaxLenth)+'元以上'
ELSE convert(varchar(10),@StepLength*(@PhaseValue-1)+1)+'~'+convert(varchar(10),@StepLength*(@PhaseValue))
end
end
else
set @FinValue='出现的异常'
RETURN @FinValue
END