SQLserver2000中 针对查询结果中存在不固定字段时 如何排除固定
由于手头工作需要出一张报表。报表内容是按月统计N种费用科目汇总数目。用户可以选择时间范围。如果选择的时间范围跨度是2年,那么就需要有24个月份字段。 例如: 费用科目代码 费用科目名称?2008年1月 2008年2月 ... 2009年12月 ??? ...?????????????????? ...????????????? ...??????????????? ...?????????????????? ... ? 这里的月份字段就是不固定字段。会随着用户所选择的时间范围的变化而变化,月份以外的字段则是固定字段. 假设除了这部分不固定的字段之外 同时还有大量固定的字段。那么如果有需求只选择不固定的这些月份字段进行查询时,怎么把剩余的那些固定字段排除在外呢。 ? 首先分析一下。查询结果中,字段由固定的这部分 和不固定的两部分组成。select * 可以得到所有字段,固定字段我们是已知的,所以从理论上来说取得剩余的不固定字段肯定是可能的。 查询了一下sqlserver2000的帮助文档,发现INFORMATION_SCHEMA.COLUMNS这个系统视图很有帮助。? 它给出例句是select column_name from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 表名/视图名 作用是返回表或视图的字段名,加以变化就可以这样: declare @sql varchar(8000) select @sql = column_name+','+@sql from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 表名/视图名 ... 这里打印出来可以看到 @sql输出的就是剩下所需要字段 并且已经排列成按逗号分隔的形式。 剩下的工作只要自己按需求组织一下语句就可以实现了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |