如果您获得的结果为0
,则有时需要返回< 0
。我想要一种简化,可读,无冗余的方法。需要替换的东西并大大简化了以下内容:
Select
Case
When Amount_Required - Amount_In_Stock < 0 Then 0
Else Amount_Required - Amount_In_Stock
End as Amount_Needed
答案 0 :(得分:2)
经过一段时间的比赛后,我认为这是一种有效的方法:
Select
Greatest(0, Required - In_Stock) as Needed
似乎相当可读,特别是如果它成为标准做法。表达式Amount_Needed - Amount_In_Stock
没有冗余。差不多就像我想的那样短暂。
此外,如果您希望拥有#cap,请替换以下内容:
Case
When X+Y > 9999 Then 9999
Else X+Y
End as Z
你可以使用类似的方法。
Select
Least(9999, Attack - Defense) as Damage --Cap attack damage at 9999
这个例子对查询没有任何意义,但你明白了。