protected virtual void Visit <TResult>(UnionStatement <TResult> statement) { Visit(statement.Left); WriteLine(); WriteIndentation(); Write("UNION"); WriteLine(); Visit(statement.Right); WriteLine(); }
protected virtual void VisitUnionStatement(UnionStatement statement) { VisitStatement(statement.First); State.Write(Symbols.UNION); if (statement.All) { State.Write(Symbols.ALL); } VisitStatement(statement.Second); }
public void Visit(UnionStatement unionStatement) { if(unionStatement.TableAlias != null && unionStatement.TableAlias != string.Empty) _Query.Append(" ( "); foreach(SelectStatement query in unionStatement.SelectExpressions) { query.Accept(this); if (unionStatement.SelectExpressions.IndexOf(query) != unionStatement.SelectExpressions.Count - 1) _Query.Append("UNION "); } if(unionStatement.TableAlias != null && unionStatement.TableAlias != string.Empty) _Query.Append(String.Concat(" ) AS ", unionStatement.TableAlias, " ")); }
public UnionStatement Union(params StatementBase[] statments) { UnionStatement result = null; foreach (var statment in statments) { if (result == null) { result = new UnionStatement(this, statment); } else { result.Union(statment); } } return(result); }
public UnionStatement ParseUnionSatement(UnionStatementContext node) { UnionStatement statement = new UnionStatement(); UnionType unionType = UnionType.UNION; foreach (var child in node.children) { if (child is TerminalNodeImpl terminalNode) { int type = terminalNode.Symbol.Type; switch (type) { case TSqlParser.ALL: unionType = UnionType.UNION_ALL; break; case TSqlParser.INTERSECT: unionType = UnionType.INTERSECT; break; case TSqlParser.EXCEPT: unionType = UnionType.EXCEPT; break; } } else if (child is QuerySpecificationContext || child is QuerySpecificationNointoContext) { statement.Type = unionType; statement.SelectStatement = this.ParseQuerySpecification(child as ParserRuleContext); } } return(statement); }