【发布时间】:2016-01-02 03:41:38
【问题描述】:
我有这个用于 H2 数据库的 SQL:
update EVENT event
set event.SENT_INTO_WF_BY_ID = (
select TOP 1 eventRev.USER_ID
from EVENT_REV eventRev
where eventRev.EVENT_ID = event.EVENT_ID
and eventRev.STATUS != (
select TOP 1 eventRev2.STATUS
from EVENT_REV eventRev2
where VALID_FROM is not null
and eventRev.EVENT_ID = eventRev2.EVENT_ID
order by VALID_FROM asc
)
order by eventRev.VALID_TO asc nulls last
)
where event.SENT_INTO_WF_BY_ID is null
我必须翻译它以使其适用于 Oracle。在 Oracle 中,“TOP”不存在,所以我尝试了这个:
update EVENT event
set event.SENT_INTO_WF_BY_ID = (
select eventRev.USER_ID
from ( select eventRev.USER_ID from EVENT_REV eventRev
where eventRev.EVENT_ID = event.EVENT_ID
order by eventRev.VALID_TO asc nulls last )
where rownum = 1
)
where event.SENT_INTO_WF_BY_ID is null;
但这给了我错误:
错误:ORA-00904:“事件”。“EVENT_ID”:无效标识符
有没有更多嵌套选择的解决方案?
【问题讨论】:
标签: sql oracle nested translate