0

beginつまり、 andを使用してすべてを試してみましendたが、うまくいきません。どうすればこれを修正できますか?

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完全なクエリを内部に収めることはできません!

UPDATEおそらく、メイン クエリをではなくタイプにしたいでしょうSELECThttp://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 に答える