2014-01-07 58 views
0

执行更新查询后出现问题。它使用所需的描述(字符串)更新我想要的列。然而,不应该被查询影响的列是空的,而不是具有描述(字符串)。我应该怎么做才能不在这些专栏中行事?更新字段后,某些列为空

下面是该查询:

update GCCC_ATCOM_CLOSING_REASON_I18N a 
set a.DESCRIPTION = (select b.CLOSING_REASON_DESCRIPTION 
        from GCCC_ATCOM_CLOSING_REASON b 
        where b.ID_CLOSING_REASON = a.ID_PARENT 
        AND a.DESCRIPTION ='I HAVE A CAR'); 

在这种情况下,它只是更新有在描述“我有车”,但其他的都是更新后的空白栏。

+0

什么DB引擎你用这些记录? –

+0

是Oracle,对不起 – Katherine99

回答

3

这是因为你正在更新所有记录,如果描述不是I HAVE A CAR,你的内部查询返回null。修改成:

update GCCC_ATCOM_CLOSING_REASON_I18N a 
set a.DESCRIPTION = 
    (select b.CLOSING_REASON_DESCRIPTION from GCCC_ATCOM_CLOSING_REASON b where b.ID_CLOSING_REASON = a.ID_PARENT) 
WHERE a.DESCRIPTION ='I HAVE A CAR' 

只更新有描述I HAVE A CAR

+1

非常感谢Szymon – Katherine99

相关问题