[Quote=引用 18 楼 flygao85 的回复:]
楼上的做法就是目前我的做法。但是这种有缺陷。要读系统表,而且当有函数的时候就不行了。比如使用
select c1+c2 as c from table 那么插入到临时表的列名就是c,而不是我想要的c1和c2了。
[/Quote]不获取别名的话,情况很复杂啊
比如有这样一个语句
select column1,column2+column3,sum(column4)
from table1
join table2
on table1.key=table2.key
group by column1,column2+column3
having avg(column5)>1
貌似要请<编译原理>来处理,大四时选修过,感觉很难(还好没挂).
单层的Select语句可能还好处理,问题是那些多层嵌套查询,关联查询,聚集查询,使用别名的不好处理.
建议方法如下,供参考.
1.把结果的1行插入临时表, select top 1 ... into [临时表] from ...
2.然后sp_mshelpcolumns [临时表]就能得到所有查询结果的字段.