[英]Update field based on other fields of the same table
我有一張桌子Datawarehouse
,那里的人口出現問題了。 每行都有一個name
和一個ID
,對於原始系統中的每次更新,都會在DWH
表中創建一個新行,該行應保持受影響對象的相同ID
和Name
。
由於某種原因,會為同一對象生成重復的IDs
(相同的名稱,知道名稱也是唯一的對象明智的而不是表明智的,與ID相同,它不是表主鍵,它只是對象ID)。
知道我具有以下字段: ID
, Name
, IsLatest
,我現在需要修復數據。 為此,我需要使用的偽代碼是:
1. Select the list of rows with the same Name
2. Select the ID where IsLatest = 1
3. Update the rest of rows with that ID
更新查詢出現問題,我無法僅選擇一個ID
,也無法循環使用其他名稱。
可以使用相關子查詢完成此操作:
UPDATE DWH
SET id = (
SELECT id
FROM DataWarehouse
WHERE DWH.name = name
AND isLatest = 1
)
FROM DataWarehouse DWH
選擇最新到臨時表並將其用於更新。
UPDATE YourTable
SET YourTable.ID = LatestTable.ID
FROM
(
SELECT * FROM YourTable
WHERE IsLatest = 1
) AS LatestTable
WHERE YourTable.[Name] = LatestTable.[Name]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.