我遇到查詢問題。我試圖找到答案,但找不到它。查詢基於另一個行更新一行
我有2行爲我的表中的一些僱員。我想保留最近的那些,並刪除舊的..但在此之前,我想更新來自同一員工的舊行數據中的新行的空列。例如。
我想更新ID號爲1和3,以便只有空列被更新和非空列不更新,從而使數據變得
輸出應該是這樣的:
我可以在最後刪除重複項,因爲舊數據的ID是已知序列。
請幫忙!謝謝!
我遇到查詢問題。我試圖找到答案,但找不到它。查詢基於另一個行更新一行
我有2行爲我的表中的一些僱員。我想保留最近的那些,並刪除舊的..但在此之前,我想更新來自同一員工的舊行數據中的新行的空列。例如。
我想更新ID號爲1和3,以便只有空列被更新和非空列不更新,從而使數據變得
輸出應該是這樣的:
我可以在最後刪除重複項,因爲舊數據的ID是已知序列。
請幫忙!謝謝!
你可以嘗試這樣的:
UPDATE EMP1
SET
Name = CASE
WHEN EMP2.Name IS NULL THEN EMP2.Name
END
FROM
Employee AS EMP1
INNER JOIN Employee AS EMP2 ON EMP1.Employee_no = EMP2.Employee_no AND EMP1.ID <> EMP2.ID
SQL命令沒有正確結束錯誤:( – Umar
你有什麼類型的數據庫?MSSQL,Oracle,MySQL?有些語義可能在更新子句中有所不同(此解決方案特定於MSSQL) – tvmannetjie
即時通訊使用oracle:\ – Umar
您可以對其進行更新:
UPDATE employee e
set dob = (
select db from (
select dob
over (partition by dob order by employeeno) db
from employee
) ee
where ee.employeeno = e.employeeno
)
添加唯一約束的employee_no。 (這不會再發生......) – jarlh
發生這種情況是因爲我正在將某些其他數據庫的數據集成到我的數據庫中。 – Umar