查询减去一列中的所有数字

Query to subtract all numbers in a column

我认为此处不需要代码,但如果您愿意,请告诉我。

我不得不删除我的 table 中的一整组条目。这些条目由随时间间隔增加的整数值组织。有没有一种方法可以编写查询,以便特定列中的所有值都将更新为 -1 值?

例如,假设我有这个 table

| Red    | 1 |
| Orange | 2 |
| Yellow | 3 |
| Green  | 4 |
| Cyan   | 6 |
| Blue   | 7 |
| Purple | 8 |
| Violet | 9 |

我可以写一个查询,让青色 - 紫色的数字都减一,而不是对每个条目进行唯一更新吗?

| Red    | 1 |
| Orange | 2 |
| Yellow | 3 |
| Green  | 4 |
| Cyan   | 5 |
| Blue   | 6 |
| Purple | 7 |
| Violet | 8 |

使用Cte更新并Row_number()生成序号

; WITH cte
     AS (SELECT ( Row_number()OVER( ORDER BY id) )rn,*
         FROM   yourtable)
UPDATE cte
SET    id = rn