如何交換SQL中的記錄。我有一個案例,我必須將一個員工的記錄交換到另一個員工,例如我必須更新,如「B的頭上戴着帽子」,A頭上戴着B的帽子「。 只有我需要查詢,我有領域。這應該是什麼問題?
什麼應該是最好的方法呢?有沒有簡單的查詢呢?
如何交換SQL中的記錄。我有一個案例,我必須將一個員工的記錄交換到另一個員工,例如我必須更新,如「B的頭上戴着帽子」,A頭上戴着B的帽子「。 只有我需要查詢,我有領域。這應該是什麼問題?
什麼應該是最好的方法呢?有沒有簡單的查詢呢?
declare @hatIdA int
declare @hatIdB int
select @hatIdA = hatId from employees where empID = 'A'
select @hatIdB = hatId from employees where empID = 'B'
update employees set hadId = @hatIdB where empID = 'A'
update employees set hadId = @hatIdA where empID = 'B'
我會做這樣......
帽子和員工 'A' 和 'B' 例如,在僱員表使用self-join爲MySQL:
UPDATE
employees AS e1
JOIN
employees AS e2 ON (e1.employee_id = 'A' AND e2.employee_id = 'B')
SET
e1.hat = e2.hat,
e2.hat = e1.hat;
延伸閱讀:
您應該爲您的許多問題接受一些答案,並在問題中添加一些示例數據。 – 2010-02-10 11:49:36
你需要更具體。顯示你的模式,一些例子元組,你已經嘗試了什麼,以及你想要結果是什麼。 – 2010-02-10 11:51:35
您可以使用RDBMS提供的過程語言。然後像使用任何通用語言一樣使用臨時變量並交換數據。 – 2010-02-10 11:52:04