2012-01-06 2 views
3

Похоже, что был задан аналогичный вопрос, существуют ли решения для других продуктов DB (особенно MS-SQL), но они не работают для sybase, поэтому я задаю этот вопрос.Sybase add incrementing counter to select statement

У меня есть простой оператор select, и я бы хотел получить столбец, содержащий и увеличивающий счетчик, вместе с результатами.

например:

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

Есть ли способ сделать это в одном операторе, а не положить его в временную таблицу и работает на него курсор?

+0

Сколько результатов в целом (обычно)? –

+0

Не много, около 100, определенно внутри int :) –

+0

Я ответил !! :) –

ответ

3

Вам нужно также, чтобы создать временную таблицу, но вам не нужно никакого курсора, просто сделать это следующим образом:

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

select * from #t1 
drop table #t1 
+0

Ницца - это то, что я искал !!! Теперь можно указать, с какого числа начать? –

+0

@VictorParmar: вы всегда можете добавить смещение в конечном SELECT, то есть 'SELECT counter + 10 AS counter, data1, ... FROM # t1'. –

+0

Отлично !!!!!! –

2

В зависимости от версии Sybase вы используете, вы можете также иметь посмотрите на функции, такие как NUMBER() или ROW_NUMBER().