public override void WriteSql(StringBuilder sql) { if (IsWrapped) { sql.Append("("); } sql.Append("SELECT"); if (IsDistinct) { sql.Append(" DISTINCT "); } WriteList(Columns, sql); if (From != null) { sql.Append("\r\nFROM "); From.WriteSql(sql); } if (Where != null) { sql.Append("\r\n WHERE "); Where.WriteSql(sql); } if (GroupBy != null) { sql.Append("\r\n GROUP BY "); WriteList(GroupBy, sql); } if (OrderBy != null) { sql.Append("\r\n ORDER BY "); WriteList(OrderBy, sql); } if (Limit != null || Skip != null) { sql.Append(" LIMIT "); if (Skip != null) { sql.AppendFormat("{0},", Skip); } if (Limit == null) { sql.Append("18446744073709551615"); } else { sql.AppendFormat("{0}", Limit); } } if (IsWrapped) { sql.Append(")"); if (Name != null) { sql.AppendFormat(" AS {0}", QuoteIdentifier(Name)); } } }