2016-05-27 4 views
0

Есть ли способ создать пользовательский последовательный номер, например, следующий? Я хочу, чтобы число увеличивалось с помощью группировки по коду и году.Как сгенерировать пользовательский последовательный номер с SQL Server 2012

Code Year Number 
A  2016 1 
A  2016 2 
A  2016 3 
B  2016 1 
B  2016 2 
C  2016 1 
A  2017 1 
A  2017 2 

Любое предложение будет оценено.

EDIT
К сожалению, я был слишком неоднозначен, что я хочу. Я хочу сгенерировать уникальный номер при запросе, поэтому, если я задам новый номер в приведенном выше контексте данных с помощью кода: A и Year: 2017, я хочу, чтобы число было равно 3. Я предполагаю, что номер правильно в будущем Мне нужно сохранить код и год с номером.

+1

Вы хотите иметь это число в таблице или когда вы запрашиваете данные? – dotnetom

+0

О, я забыл упомянуть, что сгенерированное число должно быть уникальным, поэтому я думаю, что цифры должны быть сохранены в таблице –

ответ

2

Использовать ROW_NUMBER для присвоения Number за Code, Year группировка.

SELECT *, 
    Number = ROW_NUMBER() OVER(PARTITION BY Code, [Year] ORDER BY (SELECT NULL)) 
FROM tbl 

Заменить SELECT NULL с колонкой вы хотите, чтобы для того, чтобы быть на основе из.

+1

О, такой быстрый ответ. Большое спасибо! Я думаю, все, что мне нужно сделать, это сохранить этот номер для будущего запроса. –

Смежные вопросы