WriteSql() public method

public WriteSql ( StringBuilder sql ) : void
sql StringBuilder
return void
コード例 #1
0
        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));
                }
            }
        }