想要update順序按照order by的條件

2021-06-26 01:36:44 字數 643 閱讀 5463

要求:更新採購申請明細行的行號row_id欄位,按照單據分組,明細行id排序,讓row_id從1開始更新

update scm_dem_purchase_req_dtl_tbl

set row_id = rownum

where bill_id =139505

order by id;

--這樣寫報錯,應為update與order by 不能一起使用,做一下的修改

邏輯:使用分析函式:row_number() over(order by id) rn,以id排序,查出rn,用以更新值;

然後自關聯表更新 row_id 為 查出的符合要求的rn欄位,即可!!

哈哈,分析函式很好用~~~

update scm_dem_purchase_req_dtl_tbl t

set row_id =

(select rn

from (select bill_id, id, row_number() over(order by id) rn

from scm_dem_purchase_req_dtl_tbl tt

where bill_id = 139505)tt

where t.id = tt.id)

where bill_id = 139505;

update 語句更新順序

create table tb 產品 varchar 2 數量 int,日期 varchar 4 單據號 varchar 4 insert into tb select a 10,9.1 001 union all select a 3,9.2 002 union all select a 4,9....

多執行緒按照順序執行

自己瀏覽了多個的文章,自己的理解加上的思路,彙總成了這篇文章 1.如何讓多執行緒按照既定順序執行 2.原理 1.直接上 final long start system.currenttimemillis thread t1 new thread catch interruptedexception ...

Linux 按照順序啟動服務

檢查 10.10.1.127 下 3307 埠服務是否開啟,預設15s嘗試 wait for it.sh 10.10.1.127 3307 usr bin env bash 1.啟動 redis 和 mysql 服務 cd base docker compose up d 2.等待 mysql 服務...