加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLserver2000中 针对查询结果中存在不固定字段时 如何排除固定

发布时间:2020-12-12 15:27:55 所属栏目:MsSql教程 来源:网络整理
导读:由于手头工作需要出一张报表。报表内容是按月统计N种费用科目汇总数目。用户可以选择时间范围。如果选择的时间范围跨度是2年,那么就需要有24个月份字段。 例如: 费用科目代码 费用科目名称?2008年1月 2008年2月 ... 2009年12月 ??? ...??????????????????

由于手头工作需要出一张报表。报表内容是按月统计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)
set @sql=''

select @sql = column_name+','+@sql from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 表名/视图名
and column_name <> 要排除固定字段名1
and? column_name <> 要排除固定字段名2

...
print @sql

这里打印出来可以看到 @sql输出的就是剩下所需要字段 并且已经排列成按逗号分隔的形式。

剩下的工作只要自己按需求组织一下语句就可以实现了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读