2012-01-06 60 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