У меня есть таблица с 2 столбцами PK, которые мне нужно заполнить. Первый столбец «ID» уже заполнен, мне нужно сгенерировать и заполнить столбец «SeqNum» с помощью int, как в моем примере ниже. Очевидно, не может быть одного и того же SeqNum в той же записи, что и тот же ID, потому что они оба PK (я уверен, вы знаете, что я имею в виду). Как я могу это сделать?SQL Generate Sequence Numbers
Это простой запрос так:
Insert into @TempTable
Select A.ID
,1 --not sure what to do here
,B.Col3
--and other columns
From Blah A Join Blah2 B on B.ID = A.ID
Я пытался что-то вроде и не получилось:
(Select max(ISNULL(SeqNum, 0)) + 1 From @TempTable Where ID = A.ID)
Любая помощь очень приветствуется. Может, мне нужно петлю?
Пример выходных мне нужно:
PK PK
ID SeqNum
1111 1
1111 2
1111 3
2222 1
2222 2
2222 3
3333 1
4444 1
5555 1
5555 2
Если предположить, что это SQL-сервер или PostgreSQL, то ответ Джона кажется хорошо вписываться. – xQbert
Согласовано. Если zanq искал список из N элементов, это было бы иначе. – Kevin
Добавлен тег 'sql-server', основанный на (нестандартном) синтаксисе, используемом в принятом ответе –