2012-01-06 99 views
3

似乎有人问过类似的问题,其他数据库产品(特别是MS-SQL)的解决方案存在,但它们不适用于sybase,所以我问这个问题。Sybase在选择语句中添加递增计数器

我有一个简单的选择语句,我想得到一列包含和递增计数器与结果。

如:

counter data1 data2 
0  aa  AA 
1  bb  BB 
2  cc  CC 

有没有办法做到这一点在一条语句,而不是把它变成一个临时表,并在其上运行的光标?

+0

总共有多少结果(通常)? – 2012-01-06 17:50:33

+0

不是很多,大约100,肯定在一个int :) – 2012-01-06 18:16:18

+0

我已经回答了! :) – 2012-01-09 09:43:56

回答

3

您需要,以及创建一个临时表,但你不需要任何光标,只是做这样的:

select counter = identity(10), data1, data2 into #t1 from tablename 

select * from #t1 
drop table #t1 
+0

不错 - 这就是我一直在寻找的!现在有什么办法可以指定要开始的号码吗? – 2012-01-09 22:04:54

+0

@VictorParmar:你总是可以在最后的SELECT中添加一个偏移量,即'SELECT counter + 10 AS counter,data1,... FROM#t1'。 – 2012-01-09 22:12:18

+0

优秀!!!!!! – 2012-01-09 22:16:33