Extends SqlGeneratingSelectExpressionVisitor by building an in-memory projection. This should be used for the SqlStatement.SelectProjection of the outermost SqlStatement in a query. For substatements, SqlGeneratingSelectExpressionVisitor should be used instead.