0

我的意思是我尝试了所有使用方法beginend但它不起作用。我怎样才能解决这个问题?

select
     case 
    when exists
    (select ORG_UNIT_NAME from aaa.bbb 

    where ORG_UNIT_NAME ='ccc' and created_Date=to_date('01/11/2012','dd/mm/yyyy') )

    then

    update  aaa.bbb 
    set PROJECT_QUOTA=555 where ORG_UNIT_NAME  ='ccc' and created_Date=to_date('01/11/2012','dd/mm/yyyy')


    else
    'asd'


    end as exist_
    from dual

如果我之后使用'ddd'而不是更新它的工作,但为什么更新不起作用。

4

2 回答 2

1

在 SQL 中,CASE构造不是流控制结构。想想它的通用版本COALESCE()。你不能UPDATE在里面放一个完整的查询!

您可能希望您的主要查询是UPDATEtype 而不是SELECT. 您可以在http://psoug.org/reference/update.html找到一些复杂的示例

于 2012-11-12T17:32:58.640 回答
0

要仅基于条件进行更新,只需将其添加到 WHERE 子句。但你猜怎么着——你已经把它放在那里了。这个查询应该做你想做的事 - 是吗?

update  aaa.bbb 
set PROJECT_QUOTA=555 
where ORG_UNIT_NAME  ='ccc' and created_Date=to_date('01/11/2012','dd/mm/yyyy')
于 2012-11-12T23:13:04.857 回答