2014-05-15 52 views
1

是否可以將此查詢合併到一個UPDATE語句中?將兩個UPDATE語句與一個SET語句與WHERE子句和一個SET結合使用

UPDATE [dbo].[MyTable] 
SET Column1 = Column2 

UPDATE [dbo].[MyTable] 
SET Column3 = 1 
WHERE Column1 IS NOT NULL 

謝謝。

+0

您正在使用什麼數據庫管理系統? –

+0

這取決於 - 第二個語句中的Column1檢查是否意味着在第一個語句執行後的最後一個狀態是「Column1」還是意味着該時間之前的狀態? –

+0

T-SQL,SQL-server 2012以及之前的版本。 –

回答

3
UPDATE [DBO].[MyTable] 
SET Column1 = Column2, 
    Column3 = (
    CASE 
    WHEN Column1 IS NOT NULL 
    THEN 1 
    ELSE Column3 
    END) 
1

這應該爲你工作:

UPDATE [dbo].[MyTable] 
SET Column1 = Column2 
    ,Column3 = 
    case 
     when Column1 IS NOT NULL THEN 1 
     else Column3 
    end 
+0

當'Column1'爲空時,這會導致'Column3'被設置爲'NULL'。 –

+1

在Column1不爲null的情況下,您將Column3設置爲null –

+2

@Lesya感謝您的好眼睛 - 急於回答。答案已更新。 –