jos*_*der 2 sql t-sql sql-server
我试图限制特定字段,以便它们不超过特定值.
例如,这样的东西就足够了,我可以指定一个字段不应超过8:
SELECT (
cap(t.MondayHrs,8)
+ cap(t.TuesdayHrs,8)
+ cap(t.WednesdayHrs,8)
+ cap(t.ThursdayHrs,8)
+ cap(t.FridayHrs,8)
) as TotalHours
Run Code Online (Sandbox Code Playgroud)
如果MondayHrs = 7,则应将其添加到TotalHours为7.如果MondayHrs = 10,则应将其添加到TotalHours为8(我的上限值)
T-SQL内置了什么可以促进这一点?
create function Cap (@Value float,@maxValue float) Returns float
as
begin
Declare @Result float
if @Value > @maxValue select @Result=@Maxvalue else select @Result=@Value
Return @Result
end;
Run Code Online (Sandbox Code Playgroud)
用法
Select dbo.Cap(1,10),dbo.Cap(11,10)
Run Code Online (Sandbox Code Playgroud)
尝试...
select least(t.MondayHrs,8)
+ least(t.TuesdayHrs,8)
+ least(t.WednesdayHrs,8)
+ least(t.ThursdayHrs,8)
+ least(t.FridayHrs,8)
) as TotalHours
Run Code Online (Sandbox Code Playgroud)