2010-07-21 74 views

回答

0

基本上是:

UPDATE a SET a.FIELD = (CASE WHEN b.FIELD IS NULL or b.FIELD = '' THEN c.FIELD ELSE b.FIELD END) 
FROM TABLEA a 
LEFT JOIN TABLEB b on a.id = b.someid 
LEFT JOIN TABLEC c on a.id = c.someid 

加入也可以不留,這取決於你的數據,你可能要處理的其中兩個b.field和c.field是空的情況。

4

用途:從左至右

UPDATE A 
    SET column = (SELECT COALESCE(b.val, c.value) 
        FROM B b 
        JOIN C c ON c.col = b.col) 

COALESCE將列的列表,返回處理的第一個非空值。

有什麼奇怪的是,你沒有提供表B和表C如何相互關聯 - 如果它們不反正,你正在看兩張表的笛卡爾積(不理想)。我的答案使用JOIN,希望可以根據數據進行。

相關問題