我试图更新一个表中的两行。如果我使用:
update ERNTESTUPDATE a
set (date_loaded, acad_career) = (select distinct b.date_loaded, b.acad_career
from PS_STDNT_ENRL b
where rownum=1)
where to_char(date_created) = to_char(trunc(sysdate))
;
我有2行更新为
11/29/18 UGRD
11/29/18 UGRD
如果我使用:
update ERNTESTUPDATE a
set (date_loaded, acad_career) = (select distinct b.date_loaded, b.acad_career
from PS_STDNT_ENRL b
where a.date_loaded = b.date_loaded )
where to_char(date_created) = to_char(trunc(sysdate))
;
我收到一个错误
单行子查询返回多行
如何获得如下结果:
11/29/18 UGRD
11/29/18 GRAD
谢谢,Kate
子查询需要返回一个SINGLE行。当你在第一个条件中包括条件rownum=1
时,这很好:
select distinct b.date_loaded, b.acad_career
from PS_STDNT_ENRL b
where rownum=1 -- this filter makes sure only one row is returned
如果删除该条件,那么子查询将返回多行,这将导致整个UPDATE
失败。