我有一張需要填充2個PK列的表。第一列「ID」已經填充完畢,我需要在下面的例子中用int來生成和填充「SeqNum」列。在相同的記錄中顯然不能有相同的SeqNum,因爲它們都是PK的(我相信你明白我的意思)。我怎樣才能做到這一點?SQL生成序列號
它是像這樣一個簡單的查詢:
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'標記 –