SQL Server查询分析结果增加自增序列号列

有时需要让select返回的查询结果中存在一列实际在数据库表中并不存在的序号列,即在查询结果中额外增加自增的序号列。网上找了下资料,有2种方法可以实现:

1、使用数据库自带的序号函数实现

SQL Server 2005中的函数RANK,ROW_NUMBER可以比较简单地实现这种需求,不过在SQL Server 2000中这两个函数不受支持。SQL Server 2000中只能使用临时表的方法。

2、使用临时表实现

SQL的IDENTITY函数可以提供自增的序号,但只能用在带有into table子句的SELECT语句中,所以如果可以使用临时表的情况下可以使用这种方法。

举例。先建立临时表,然后查询得到结果,最后删除临时表:

select id1=identity(int,1,1), id2=a,id3=b
into temp00
frome table;

select id1,id2,id3
from temp00;

truncate table temp00;
drop table temp00;

identity (data_type [ , seed , increment ] )函数用法:

  • data_type:数据类型。可以是任何整数数据类型类别的数据类型(bit 数据类型除外),也可以是 decimal 数据类型。
  • seed:要分配给表中第一行的整数值。为每一个后续行分配下一个标识值,该值等于上一个 IDENTITY 值加上 increment 值。不指定的话默认为 1。
  • increment:要加到表中后续行的 seed 值上的整数值。不指定的话默认为1。

参考资料:

  1. SQL 查询结果自动递增序列号
  2. IDENTITY(函数)(Transact-SQL)

分类:数据库

标签:, , ,

对本文发表评论





5 + 5 = ?

注意:
1、请勿单纯发表顶啊、打酱油之类无任何意义的评论,否则将被视为spam!谢谢合作!
2、但欢迎你留下对本文的看法或技术上的任何疑问,我会及时回复你。