public SelectExpression(QualifiedName selection, Name alias)
        {
            if (selection == null)
                throw new ArgumentNullException("selection", "selection is null.");

            this.selection = selection;
            this.alias = alias;
        }
        public SelectExpression As(Name alias)
        {
            if (this.alias != null)
                throw new InvalidOperationException("Alias already set.");

            var clone = this.Clone();
            clone.alias = alias;
            return clone;
        }