public override void EnterColumn(SelectSQLParser.ColumnContext context)
        {
            Column column = new Column();

            if (context.columnExpression().IsEmpty)     //不存在列表达式
                throw new MissingColumnExpressionException();

            var functionalColumn = context.columnExpression().functionableColumn();
            var columnName = context.columnExpression().columnName();

            if (functionalColumn!=null&&!functionalColumn.IsEmpty)
            {
                column.Expression = new ColumnExpression(ExpressionType.Function);
                column.Expression.Function = new FunctionDescription();
            }
            else if (columnName!=null&&!columnName.IsEmpty)
            {
                column.Expression = new ColumnExpression(ExpressionType.ColumnName);
                column.Expression.ColumnName = columnName.GetText();
            }
            else
            {
                throw new MissingColumnExpressionException();
            }

            if (context.AS() != null)           //存在别名
            {
                columnName = context.columnName();

                if (columnName.IsEmpty)         //语法错误
                    throw new MissingColumnAliasException();

                column.HasAlias = true;
                column.Alias = columnName.GetText();
            }

            this.SelectStmt.Columns.Add(column);
        }