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));
}
}
}