/// <summary> /// Returns the statement as an SQL string. /// </summary> public override String ToString() { var stringBuilder = new StringBuilder("SELECT "); if (!Columns.Any()) { Columns.Add("*"); } stringBuilder.AppendLine(String.Join(QueryBuilder.ColumnSeparator, Columns)); stringBuilder.AppendLine(FromBuilder.ToString()); if (GroupByColumns.Any()) { stringBuilder.AppendLine("GROUP BY " + String.Join(QueryBuilder.ColumnSeparator, GroupByColumns)); } if (OrderByColumns.Any()) { var orderByColumns = OrderByColumns .Select(pair => pair.Key + " " + (pair.Value == SortingDirection.Ascending ? "ASC" : "DESC")) .ToArray(); stringBuilder.AppendLine("ORDER BY " + String.Join(QueryBuilder.ColumnSeparator, orderByColumns)); } return(stringBuilder.ToString().Trim()); }
public QuerySpecificationBuilderImpl( SQLVendor vendor, SelectColumnClauseBuilder columnsBuilder, FromBuilder fromBuilder, BooleanBuilder whereBuilder, GroupByBuilder groupByBuilder, BooleanBuilder havingBuilder, OrderByBuilder orderByBuilder ) : base(vendor) { ArgumentValidator.ValidateNotNull(nameof(columnsBuilder), columnsBuilder); ArgumentValidator.ValidateNotNull(nameof(fromBuilder), fromBuilder); ArgumentValidator.ValidateNotNull(nameof(whereBuilder), whereBuilder); ArgumentValidator.ValidateNotNull(nameof(groupByBuilder), groupByBuilder); ArgumentValidator.ValidateNotNull(nameof(havingBuilder), havingBuilder); ArgumentValidator.ValidateNotNull(nameof(orderByBuilder), orderByBuilder); this._colsBuilder = columnsBuilder; this._fromBuilder = fromBuilder; this._whereBuilder = whereBuilder; this._groupByBuilder = groupByBuilder; this._havingBuilder = havingBuilder; this._orderByBuilder = orderByBuilder; }
/// <summary> /// Initializes a new instance of the <see cref="SelectBuilder"/> class. /// </summary> internal SelectBuilder(QueryBuilder queryBuilder, FromBuilder fromBuilder, params String[] columns) : base(queryBuilder) { Columns = new List <String>(columns); FromBuilder = fromBuilder; GroupByColumns = new List <GroupByClause>(); OrderByColumns = new Dictionary <String, SortingDirection>(); }
public PagedSelectCommandBuilder CrossJoin(string value) => this.Chain(() => { if (FromBuilder.Length == 0) { throw new InvalidOperationException("No FROM clause found to add CROSS JOIN clause to"); } FromBuilder.Append(" CROSS JOIN ").Append(value); });
public PagedSelectCommandBuilder RightOuterJoin(string value) => this.Chain(() => { if (FromBuilder.Length == 0) { throw new InvalidOperationException("No FROM clause found to add RIGHT OUTER JOIN clause to"); } FromBuilder.Append(" RIGHT OUTER JOIN ").Append(value); });
public PagedSelectCommandBuilder Clear() { SelectBuilder.Clear(); FromBuilder.Clear(); WhereBuilder.Clear(); OrderByBuilder.Clear(); GroupByBuilder.Clear(); HavingBuilder.Clear(); CommandParameters.Clear(); Distinct = false; Offset = 0; PageSize = 0; return(this); }
public PagedSelectCommandBuilder From(string value) => this.Chain(() => FromBuilder.Append(value));
public static FromBuilder AddTableNamesP(this FromBuilder builder, params TableName[] tableNames) { return(builder.AddTableNames(tableNames.Select(n => Tuple.Create <String, TableName>(null, n)))); }
public static FromBuilder AddTableRefsP(this FromBuilder builder, params TableReference[] tableRefs) { return(builder.AddTableRefs(tableRefs)); }
public static FromBuilder AddTableNamesP(this FromBuilder builder, params Tuple <String, TableName>[] tableNames) { return(builder.AddTableNames(tableNames)); }