私は移入する必要のある2つのPK列を持つテーブルを持っています。最初の列「ID」にはすでに値が設定されています。下の例のように、「SeqNum」列にintを生成して設定する必要があります。明らかに同じIDと同じレコード内に同じ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'タグが追加されました –