SQL更新来自相同table的数据

SQL UPDATE on with data from same table

我有一个 table 的下一个情况,需要从相同 table 中的行更新行,如您在此处看到的:

TABLE

ID SN FID
1 12345 1
2 1122 2
3 12345-RG NULL
4 1122-RG NULL

我需要从第 1 行更新第 3 列 FID(相同的 SN,不同的结尾仅在末尾 -RG) 从第 2 行更新第 4 列 FID(相同的 SN,不同的结尾 -RG)

所以结果应该是:

TABLE

ID SN FID
1 12345 1
2 1122 2
3 12345-RG 1
4 1122-RG 2

我尝试了很多方法,但我不明白这个...我尝试声明一个温度 table 并尝试从那里进行比较,但仍然存在这个问题...

假设 [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

更新后Table

ID  SN          FID
1   12345       1
2   1122        2
3   12345-RG    1
4   1122-RG     2