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

   Updated: 2012-11-04 22:41       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)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注