我定义了一个混合属性:
@hybrid_property
def result(self):
return max(0, self.impact - self.protection)
@result.expression
def result(cls):
return func.max(0, cls.impact - cls.protection)
然而 Postgres max
函数只对列进行操作,不像例如sqlite 所以表达式不起作用。有什么我可以在 Column elements or expressions 中使用的东西,或者我可以通过其他方式将我的值限制在 0 的下限?
答案 0 :(得分:1)
您似乎在使用名为“max”的 python 函数,而不是 PostgreSQL 函数。
如果这是 postgresql,那么 max
用于行上的聚合。 greatest
用于多参数。
greatest(thing1,thing2)