【发布时间】:2022-01-04 03:10:56
【问题描述】:
我想更改 Version 列的值并将其从“0”填充为按 Project_ID 递增并按 CreatedDate 排序的值.这将在 Oracle 中,它用于现有行而不是插入时 auto_increment。
之前
| Project_ID | Version | CreatedDate |
|---|---|---|
| 1 | 0 | Jun-1-2011 |
| 2 | 0 | Jun-1-2011 |
| 1 | 0 | Jun-2-2011 |
| 2 | 0 | Jun-2-2011 |
| 1 | 0 | Jun-3-2011 |
| 2 | 0 | Jun-3-2011 |
| 3 | 0 | Jun-4-2011 |
| 1 | 0 | Jun-4-2011 |
首选结果
| Project_ID | Version | CreatedDate |
|---|---|---|
| 1 | 1 | Jun-1-2011 |
| 2 | 1 | June-1-2011 |
| 1 | 2 | Jun-2-2011 |
| 2 | 2 | Jun-2-2011 |
| 1 | 3 | Jun-3-2011 |
| 2 | 3 | Jun-3-2011 |
| 3 | 1 | Jun-4-2011 |
| 1 | 4 | Jun-4-2011 |
还没有尝试过,如果我要做一个简单的
UPDATE table_name SET version = version+1 GROUP BY project_id
我不认为它会起作用
【问题讨论】:
-
你有什么尝试?
-
编辑感谢。
-
您应该有一列用于排序...您将如何决定哪些行应该获得更高版本?
-
我认为你可以使用 RANK
-
@SayanMalakshinov 150%,这就是我要求尝试的原因。只有 2 列似乎不太合乎逻辑。我仍然认为需要调试或澄清数据