SQL: обновить столбец с помощью индекса, который сбрасывается при изменении столбца - PullRequest
2 голосов
/ 15 декабря 2011

Во-первых, простите за формулировку вопроса. Я не слишком уверен, как это выразить. Надеюсь, приведенный ниже пример понятен.

Если у меня есть стол

Id | Type | Order
0  | Test | null
1  | Test | null
2  | Blah | null
3  | Blah | null

Я хочу превратить это в

Id | Type | Order
0  | Test | 1
1  | Test | 2
2  | Blah | 1
3  | Blah | 2

Итак, я группирую таблицу по типу и присваиваю номер порядку. Начинается с 1 для каждого типа.

Как мне это сделать?

Db Я использую Sybase 15.

1 Ответ

1 голос
/ 15 декабря 2011
select
    Id, 
    Type, 
    row_number() over(partition by Type order by Id) as [Order]
from YourTable

Вы должны использовать функцию ROW_NUMBER , чтобы получить то, что вы ищете.

ROW_NUMBER (Transact-SQL)

Возвращает порядковый номер строки в разделе набора результатов, начиная с 1 для первой строки в каждом разделе.

...