2014-05-07 31 views
0

我想寫一個sql語句來更新另一個表列的表中的一列。但我只想更新列,如果它是空的。更新查詢select語句只更新如果該字段爲空

例如:

UPDATE 
    Table 
SET 
    Table.col1 = other_table.col1, 
FROM 
    Table 
INNER JOIN 
    other_table 
ON 
    Table.id = other_table.id 

,但我想設置只有當該值是空的Table.col1值。什麼是最好的方法來做到這一點?

+0

',其中Table.col1是null'?取決於你的意思是空的... –

回答

3

定義爲空?

但實際上你需要的是一個在那裏同樣

UPDATE Table 
    SET Table.col1 = other_table.col1, 
    FROM Table 
     INNER JOIN 
     other_table ON Table.id = other_table.id 
WHERE Table.col IS NULL --or whatever your empty condition is 

子句中Postgre你可能需要一個不同的語法(How to do an update + join in PostgreSQL?):

UPDATE Table 
    SET Table.col1 = other_table.col1, 
    FROM Table 
     ,other_table 
WHERE Table.id = other_table.id 
    AND Table.col IS NULL --or whatever your empty condition is 
+0

要利用@KarlKieninger的聲明,無效條目和空條目(即'')之間存在主要區別。 –

+0

爲什麼它會拋出「table name Table spcecified不止一次的錯誤 - >這裏表是我的表名 –

+1

@ Null-Hypothesis,因爲你在更新語句中創建了一個連接,這可以解決(但通常dbms之間不同)。所以你的dbms是什麼? –