私は SQL にかなり慣れていないので、しばらくすると快適に使用できるようになったと思いましたが、それでもまだ難しいです。IDをインクリメントしようとしています。自動インクリメントを使用できることはわかっていますが、この場合、id には複数のカテゴリとの関係があるため、異なる番号で開始する必要があるため、実行できません。
テーブルは次のようになります。
id category
----------------
1000 1
1000 1
...
2000 2
2000 2
...
そして、私はそれを作りたい:
id category
------------------
1000 1
1001 1
1002 1
...
2000 2
2001 2
...
私は試した:
UPDATE T1
SET id = CASE
WHEN EXISTS (SELECT id FROM STYLE WHERE T1.id = id)
THEN (SELECT MAX(CAST(id AS INT)) + 1
FROM STYLE
WHERE category = T1.category)
END
FROM STYLE T1
WHERE idStyle = idStyle
しかし、すべての行に 1 を追加しただけです。実際にインクリメントされた最大IDを取得できるように、どうすれば1つずつ進むことができますか? ありがとうございました。