protected ISelectBuilder OrderByInternal(ExprOrderByItem item, params ExprOrderByItem[] rest)
        {
            if (this._orderBy.HasValue)
            {
                throw new SqExpressException("Order has already been set");
            }

            this._orderBy = new OrderByStorage(Helpers.Combine(item, rest), null);
            return(this);
        }
        protected ISelectBuilder OrderByInternal(IReadOnlyList <ExprOrderByItem> orderItems)
        {
            if (this._orderBy.HasValue)
            {
                throw new SqExpressException("Order has already been set");
            }

            this._orderBy = new OrderByStorage(orderItems.AssertNotEmpty("Order item list cannot be empty"), null);
            return(this);
        }
        protected ISelectBuilder OrderByInternal(ExprOrderBy orderBy)
        {
            if (this._orderBy.HasValue)
            {
                throw new SqExpressException("Order has already been set");
            }

            this._orderBy = new OrderByStorage(null, orderBy);
            return(this);
        }