我的意思是我使用begin
和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'而不是更新它的工作,但为什么更新不起作用。
答案 0 :(得分:1)
在SQL中,CASE
构造不是流控制结构。可以想象它是COALESCE()
的通用版本。你无法在里面填写完整的UPDATE
查询!
您可能希望主要查询属于UPDATE
类型,而不是SELECT
。您可以在http://psoug.org/reference/update.html
答案 1 :(得分: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')