![](/img/trans.png)
[英]Oracle SQL: Update a table with data from another columns of the same table
[英]SQL UPDATE on with data from same table
我有一個表的下一個情況,需要從同一個表中的行更新行,如您在此處看到的:
桌子
ID | 序列號 | FID |
---|---|---|
1 | 12345 | 1 |
2 | 1122 | 2 |
3 | 12345-RG | NULL |
4 | 1122-RG | NULL |
我需要從第 1 行列 FID 更新第 3 行(相同 SN,僅在末尾不同結尾 -RG)從第 2 行列 FID 更新第 4 行(相同 SN,不同結尾 -RG)
所以結果應該是:
桌子
ID | 序列號 | FID |
---|---|---|
1 | 12345 | 1 |
2 | 1122 | 2 |
3 | 12345-RG | 1 |
4 | 1122-RG | 2 |
我嘗試了很多方法,但我沒有得到這個......我嘗試聲明一個臨時表並嘗試從那里進行比較,但仍然存在這個問題......
假設[SN]
正在使用-RG
進行擴充
例子
with cte as (
Select *
,NV = max(FID) over (partition by replace(SN,'-RG','') )
From YourTable
)
Update cte set FID = NV
--Where FID is null -- Optional
更新的表格
ID SN FID
1 12345 1
2 1122 2
3 12345-RG 1
4 1122-RG 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.