1
我正在執行MERGE語句從臨時表t
到主表ts
,在ID字段匹配。它包含以下內容:合併聲明:不更新空白字段
WHEN MATCHED THEN UPDATE
SET ts.username = t.username, ts.password = t.password, ts.title = t.title, ts.firstname = t.firstname, ts.surname = t.surname, ts.email = t.email
如果用戶名和密碼是在臨時表t
空白,我不想要更新的主表ts
。我怎樣才能做到這一點?
編輯:看起來像一個CASE
聲明或使用COALESCE(NULLIF(t.username, ''), ts.username)
將工作。哪個最好?
你可以做一個虛擬更新嗎?即設置ts.username = coalesce(t.username,ts.username),... –
@Frank Schmitt我從來不知道COALESCE函數。如果我用NULLIF來使用它,我認爲它會做到這一點! – Marcus
實際問題是什麼:您是否希望從更新中刪除記錄,因爲它會始終更新,即使您將其設置爲之前的值。 – Farfarak