protected internal virtual Expression VisitRowNumber(RowNumberExpression rowNumber) { var orderBys = Visit(rowNumber.OrderBy, VisitOrderBy); if (orderBys != rowNumber.OrderBy) { return(new RowNumberExpression(orderBys)); } return(rowNumber); }
protected internal override Expression VisitRowNumber(RowNumberExpression rowNumber) { var orderBys = Visit(rowNumber.OrderBy, o => IsConstant(o.Expression) ? null ! : Visit(o.Expression).Let(e => e == o.Expression ? o : new OrderExpression(o.OrderType, e)));; if (orderBys != rowNumber.OrderBy) { return(new RowNumberExpression(orderBys)); } return(rowNumber); }
protected internal override Expression VisitRowNumber(RowNumberExpression rowNumber) { var orderBys = RemoveDuplicates(Visit(rowNumber.OrderBy, VisitOrderBy)); if (orderBys != rowNumber.OrderBy) { return(new RowNumberExpression(orderBys)); } return(rowNumber); }
protected internal override Expression VisitRowNumber(RowNumberExpression rowNumber) { sb.Append("ROW_NUMBER() OVER(ORDER BY "); for (int i = 0, n = rowNumber.OrderBy.Count; i < n; i++) { OrderExpression exp = rowNumber.OrderBy[i]; if (i > 0) { sb.Append(", "); } this.Visit(exp.Expression); if (exp.OrderType != OrderType.Ascending) { sb.Append(" DESC"); } } sb.Append(")"); return(rowNumber); }
protected internal override Expression VisitRowNumber(RowNumberExpression rowNumber) { AppendKeys(); return(new RowNumberExpression(gatheredOrderings)); }
protected virtual bool CompareRowNumber(RowNumberExpression a, RowNumberExpression b) { return(CompareList(a.OrderBy, b.OrderBy, CompareOrder)); }