2010-07-21 75 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,希望可以根据数据进行。

相关问题