是的,SQL UPDATE
可以與一起使用,作爲SELECT
的子查詢。需要在子查詢中訂購的SQL更新
人在那裏誰擁有了以下問題的解決方法:
不時程序在TABLE1
生成數據錯誤(我們是不是該代碼的所有者,但需要使用程序...)
我們使用觸發器協議對AUDIT
表的所有更改。
我們可以找到以下選擇錯誤的情況(和正確的舊值):
select top 1 audit.OldValue
from TABLE1
left join AUDIT on AUDIT.Table1_ID = TABLE1.ID
where <...some conditions...>
order by AUDIT.UpdateDate desc
由於有記錄的一些變化,我們只需要修改(order by updatedate
,然後採取TOP 1
)
我們將糾正數據錯誤,如果我們可以使用UPDATE
命令狀
Update TABLE1
set VALUE =
(select top 1 audit.OldValue
from TABLE1
left join AUDIT on AUDIT.Table1_ID = TABLE1.ID
where <...some conditions...>
order by AUDIT.UpdateDate desc)
where TABLE1.ID = AUDIT.Table1_ID
但是:你不能使用order by
在子查詢中...
您使用哪個dbms? – jarlh
[如何更新來自其他表的頂部1的列]的可能的副本(https://stackoverflow.com/questions/6952277/how-to-update-the-column-coming-from-top-1-of -other-table) – Prisoner
我們使用MS-SQL-Server 2012 –