本文介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。