public UpdateStatementQueryExpression(QueryExpression into, ColumnIdentifierQueryExpression[] columns, QueryExpression[] valueExpressions,
                                       WhereQueryExpression where = null)
 {
     Into             = into ?? throw new ArgumentNullException(nameof(into));
     Columns          = columns ?? throw new ArgumentNullException(nameof(columns));
     ValueExpressions = valueExpressions ?? throw new ArgumentNullException(nameof(valueExpressions));
     Where            = where;
 }
 public SelectStatementQueryExpression(
     ProjectionQueryExpression projection, FromQueryExpression from,
     JoinQueryExpression[] joins,
     WhereQueryExpression where, HavingQueryExpression having,
     OrderByQueryExpression[] orderBy, GroupByQueryExpression[] groupBy,
     LimitQueryExpression limit)
 {
     Projection = projection;
     From       = from;
     Joins      = joins;
     Where      = where;
     Having     = having;
     OrderBy    = (orderBy == null || orderBy.Length < 1) ? null : new OrderByCollectionQueryExpression(orderBy);
     GroupBy    = (groupBy == null || groupBy.Length < 1) ? null : new GroupByCollectionQueryExpression(groupBy);
     Limit      = limit;
 }
 public DeleteStatementQueryExpression(FromQueryExpression from, WhereQueryExpression where)
 {
     From  = from ?? throw new ArgumentNullException(nameof(from));
     Where = where;
 }