用一段SQL做「重新排序資料表的某一欄位並作更新」

  • 1890
  • 0
  • sql
  • 2018-09-18

有時候我們在做刪除某筆有序號欄位的資料時,需要重新在做序號欄位的更新,我們也能用sql就可以完成它…

直接來看SQL

With UpdateData  As
(
SELECT 欲更新的排序欄位,
ROW_NUMBER() OVER(ORDER BY 排序欄位) AS RN
FROM 欲更新資料表
WHERE 條件 
)
UPDATE 欲更新資料表 SET 欲更新的排序欄位 = RN
FROM 欲更新資料表
INNER JOIN UpdateData ON 欲更新資料表.欲更新的排序欄位 = UpdateData.欲更新的排序欄位
WHERE 條件