22,206
社区成员
发帖
与我相关
我的任务
分享
--创建函数
create function fnAge(@age int)
returns varchar(10)
as
begin
declare @bage int, @eage int, @base int,@groupage int,@returnage varchar(10)
select @bage = 25, @eage = 74, @base=10
select @groupage=(@eage-@bage+1)/@base
select @returnage=
case
when @age< @bage then '<'+cast(@bage as varchar(3))
when @age> @eage then '>'+cast(@eage as varchar(3))
else cast(@bage+(@age-@bage)/@groupage*@groupage as varchar(3))+'-'+
cast(@bage+(@age-@bage)/@groupage*@groupage+@groupage-1 as varchar(3))
end
return @returnage
end
--测试
select dbo.fnAge(10),dbo.fnAge(25),dbo.fnAge(31),dbo.fnAge(46),dbo.fnAge(74),dbo.fnAge(75)
--结果
--------------------------------
<25 25-29 30-34 45-49 70-74 >74
declare @bage int, @eage int, @base int
select @bage = 25, @eage = 60, @base=10
case
when age < @bage then ?
when age > @eage then ?
else (age-@bage)/@base
end
case
when age < @bage then ?
when age > @eage then ?
else (age-@bage)/@base
end