diff --git a/redash/utils/query_order.py b/redash/utils/query_order.py index 72c1bb6edd..3857a8cff9 100644 --- a/redash/utils/query_order.py +++ b/redash/utils/query_order.py @@ -33,7 +33,7 @@ from sqlalchemy.orm.properties import ColumnProperty from sqlalchemy.orm.query import _ColumnEntity from sqlalchemy.orm.util import AliasedInsp -from sqlalchemy.sql.expression import asc, desc +from sqlalchemy.sql.expression import asc, desc, nullslast def get_query_descriptor(query, entity, attr): @@ -225,7 +225,7 @@ def __init__(self, silent=True, separator="-"): def assign_order_by(self, entity, attr, func): expr = get_query_descriptor(self.query, entity, attr) if expr is not None: - return self.query.order_by(func(expr)) + return self.query.order_by(nullslast(func(expr))) if not self.silent: raise QuerySorterException("Could not sort query with expression '%s'" % attr) return self.query