【发布时间】:2020-09-07 10:41:18
【问题描述】:
我正在尝试将下面的 Sybase 查询转换为 Oracle 查询。
update Product set pd.age = (case when pd.exittime!= null then (sysdate -
pd.exittime)
else ( case when pd.queue = dp.queue
then (select (sysdate - pd.entrytime) from department dp1 where pd.id =
dp1.id ) else 2 END) END)
from Product pd,department dp
where pd.id > 1
AND pd.id = dp.id
AND pd.status in('1','7','2','5')
AND pd.currentstatus = dp.currentstatus
AND pd.activity= dp.activity;
但我尝试在转换后执行以下 Oracle 查询,但出现以下错误。
update Product pd set pd.age = (select (case when pd.exittime!= null then
(sysdate - pd.exittime)
else ( case when pd.queue = dp.queue
then (select (sysdate - pd.entrytime) from department dp1 where pd.id = dp1.id
) else 2 END) END)
from department dp
where pd.id > 1
AND pd.id = dp.id
AND pd.status in('1','7','2','5')
AND pd.currentstatus = dp.currentstatus
AND pd.activity= dp.activity)
where exists
(select 1 from department dp
where pd.id > 1
AND pd.id = dp.id
AND pd.status in('1','7','2','5')
AND pd.currentstatus = dp.currentstatus
AND pd.activity= dp.activity);
【问题讨论】:
标签: sql oracle sql-update