本文介绍 django.db.models.functions.Greatest
的用法。
声明
class Greatest(*expressions, **extra)
接受至少两个字段名称或表达式的列表并返回最大值。每个参数必须是相似的类型,因此混合文本和数字将导致数据库错误。
使用示例:
class Blog(models.Model):
body = models.TextField()
modified = models.DateTimeField(auto_now=True)
class Comment(models.Model):
body = models.TextField()
modified = models.DateTimeField(auto_now=True)
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
>>> from django.db.models.functions import Greatest
>>> blog = Blog.objects.create(body='Greatest is the best.')
>>> comment = Comment.objects.create(body='No, Least is better.', blog=blog)
>>> comments = Comment.objects.annotate(last_updated=Greatest('modified', 'blog__modified'))
>>> annotated_comment = comments.get()
annotated_comment.last_updated
将是最新的 blog.modified
和 comment.modified
。
警告
当一个或多个表达式可能是 null
时,Greatest
的行为因数据库而异:
- PostgreSQL:
Greatest
将返回最大的非空表达式,如果所有表达式都是null
,则返回null
。 - SQLite、Oracle 和 MySQL:如果任何表达式是
null
,Greatest
将返回null
。
PostgreSQL 行为可以使用Coalesce
来模拟,如果您知道一个合理的最小值作为默认值提供。
相关用法
- Python Django Group.permissions用法及代码示例
- Python Tableau GroupItem用法及代码示例
- Python Django GDALRaster.skew用法及代码示例
- Python Django GeometryCollection用法及代码示例
- Python Django GDALRaster.transform用法及代码示例
- Python Django GEOSGeometry.srid用法及代码示例
- Python Django GDALRaster.srid用法及代码示例
- Python Django GDALRaster.bands用法及代码示例
- Python Django GEOSGeometry.normalize用法及代码示例
- Python Django GenericRelation用法及代码示例
- Python Django GDALRaster.scale用法及代码示例
- Python Django GDALRaster.extent用法及代码示例
- Python Django GEOSGeometry.geom_type用法及代码示例
- Python Django GDALBand.data用法及代码示例
- Python Django GDALRaster.driver用法及代码示例
- Python Django GDALRaster.warp用法及代码示例
- Python Django GDALRaster.origin用法及代码示例
- Python Django GDALRaster.metadata用法及代码示例
- Python Django GDALRaster.srs用法及代码示例
- Python Django GDALRaster.width用法及代码示例
- Python PIL GaussianBlur()用法及代码示例
- Python Django GDALRaster用法及代码示例
- Python Django GDALRaster.name用法及代码示例
- Python Django GDALRaster.geotransform用法及代码示例
- Python Django GDALRaster.height用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.functions.Greatest。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。