internal override List <Condition> GetConditions() { var listConditions = base.GetConditions(); /// All Conditions from set operations queries listConditions.AddRange(ListSetOp.Select(r => r.Query.GetConditions()).SelectMany(r => r)); /// All Conditions from Having clause if (HavingCondition != null) { listConditions.AddRange(HavingCondition.GetAllConditions()); } return(listConditions); }
public override string ToPlainQuery() { StringBuilder sb = new StringBuilder(); sb.Append("SELECT"); if (SelectDistinct) { sb.Append(" DISTINCT"); } if (TopN > 0) { sb.AppendFormat(" TOP {0}", TopN); } if (SelectColumns.Count > 0) { for (int i = 0; i < SelectColumns.Count; i++) { Column col = SelectColumns[i]; sb.Append(" " + col.AliasedName); if (i < SelectColumns.Count - 1) { sb.Append(","); } } } else { sb.Append(" *"); } sb.AppendFormat(" FROM {0}{1}", FromTableOrQuery(), FromQuery == null ? "" : $" AS {FromQuery.Item2}"); sb.Append($" {JoinString}"); if (WhereCondition != null) { sb.AppendFormat(" WHERE {0}", WhereCondition.ToString()); } if (GroupByColumns.Count > 0) { sb.AppendFormat(" GROUP BY {0}", String.Join(",", GroupByColumns.Select(r => " " + r.FullName))); } if (HavingCondition != null) { sb.AppendFormat(" HAVING {0}", HavingCondition.ToString()); } if (OrderByColumns.Count > 0) { sb.AppendFormat(" ORDER BY {0}", String.Join(",", OrderByColumns.Select(r => String.Format(" {0} {1}", String.IsNullOrEmpty(r.Item1.Alias) ? r.Item1.FullName : r.Item1.Alias, r.Item2.GetStringValue())))); } sb.Append($" {SetOpString}"); return(sb.ToString().Trim()); }