中創建遞增值我有以下表格:SQL查詢組
+----+--------+-----+
| id | fk_did | pos |
+----+--------+-----+
此表包含數百行的,他們每個人引用另一個表fk_did
。 pos
中的值目前總是爲零,我想更改。
基本上,對於fk_did
的每個組,pos
柱應從零開始並且是遞增的。行的排列順序無關緊要。
實施例輸出(select * from table order by fk_did, pos
),我想獲得:
+----+--------+-----+
| id | fk_did | pos |
+----+--------+-----+
| xx | 0 | 0 |
| xx | 0 | 1 |
| xx | 0 | 2 |
| xx | 1 | 0 |
| xx | 1 | 1 |
| xx | 1 | 2 |
| xx | 4 | 0 |
| xx | 8 | 0 |
| xx | 8 | 1 |
| xx | 8 | 2 |
+----+--------+-----+
- 必須有具有的
fk_did
相同的組合和pos
pos
沒有兩行必須升序對每個fk_did
- 如果有一行
pos
> 0,還必須有一行具有相同的fk_did
和lo更多pos
。
這可以通過單個更新查詢來完成嗎?
插入記錄應該用WITH子句非常簡單和ROW_NUMBER。 –