protected override void EmitSelectClause(SQL.SelectClause clause) { var topClause = _topClauses.Count > 0 ? _topClauses.Peek() : null; if (topClause != null) { AppendFormat("top({0})", topClause.IsPercent ? topClause.Quota.ToString() : ((int)topClause.Quota).ToString()); if (topClause.IsPercent) { AppendFormat(" percent"); } if (topClause.WithTies) { AppendFormat(" with ties"); } } base.EmitSelectClause(clause); }
protected virtual void EmitSelectClause(SelectClause clause) { NewLine(); Indent(); if (clause.Distinct) { AppendFormat("{0} ", Keywords.Distinct); } if (clause.Columns.Count == 0) { Append(Keywords.Star); } for (int index = 0; index < clause.Columns.Count; index++) { if (index > 0) { EmitListSeparator(); } EmitColumnExpression(clause.Columns[index]); } }
private SQLModel.SelectClause TranslateReturnClause(TranslationContext context, Node returnClause) { var result = new SQLModel.SelectClause(); result.Distinct = returnClause.GetAttribute<Boolean>("distinct", true); var expression = returnClause.Children.Single(n => n.Name == "expression"); if (expression.NodeType.GetLocalName() == "Tuple") { foreach (var element in expression.Children) { var column = new SQLModel.ColumnExpression ( (Model.Expression)context.TranslateNode((ASTNode)element.Children.Single(n => n.Name == "value")), element.GetAttribute<String>("name") ); } } return result; }