SQLserver2000中 针对查询结果中存在不固定字段时 如何排除固定字段只查询不固定字段
2009-12-31 15:17
120 查看
由于手头工作需要出一张报表。报表内容是按月统计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输出的就是剩下所需要字段 并且已经排列成按逗号分隔的形式。
剩下的工作只要自己按需求组织一下语句就可以实现了。
例如:
费用科目代码 费用科目名称 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输出的就是剩下所需要字段 并且已经排列成按逗号分隔的形式。
剩下的工作只要自己按需求组织一下语句就可以实现了。
相关文章推荐
- MongoDB 如何选择查询结果指定字段 去掉_id字段
- 如何在sql/plus中把select语句查询显示出来的结果中的显示字段长度缩小
- mysql中如何将查询结果的多个记录中的指定字段放到一个二维数组中,以及在in子句中使用数组
- SQL中如何才能将查询的结果数据存在一个变量中???
- Saiku如何固定查询结果table的表头和首列
- 如何让SELECT 查询结果额外增加自动递增序号 如果数据表本身并不内含自动递增编号的字段时,要怎么做才能够让SELECT查询结果额外增加自动递增序号呢?下列五种方法供您参考: USE test;
- 同表两个字段二选一查询mysql中如何判断某一个字段是否存在某一个值
- 如何从oracle数据库的查询结果中,截取某个字段数据中含有“,”之前的数据
- 在使用Hibernate时,因为一个查询需要更多的表连接而要使用SQL来解决性能问题。然而返回的结果集中包含了没有映射的Entity类中的表字段,在这个SQL中还有使用如何将层次关系的父子结点显示为横行
- 如何把个表的合计字段 合并SQL查询到一个结果集中
- Python中模块pymysql查询结果后如何获取字段列表
- 项目____DUPLICATE、int/varchar、根据多字段排序、根据查询结果反查
- mysql如何实现多行查询结果合并成一行
- myBatis 常见问题(一)查询结果字段为null
- Hibernate查询指定字段并返回对象的结果集
- Hibernate中如何用HQL查询部分字段
- SQL里如何查询一个字段里不是数字类型的值出来
- 如何让SQL的SELECT 查询结果额外增加自动递增序号
- SQL:查询某张表中是否存在某个字段
- Struts中如何实现查询结果分页显示