select substr((select eventdescribe
from (select eventdescribe
from ns_event
order by id desc) t
where rownum <= 1),20,40) from dual;
是您的ORDER BY ROWNUM DESC造成的,为什么要这么排呢?
可以换一种写法的:select substr(eventdescribe ,20,40)
from (select eventdescribe
from (select eventdescribe
from ns_event
order by id desc) t
where rownum <= 1
order by rownum desc)
前边的查询确实没有问题,可是你把这个作为一个字段,然后SELECT ... FROM DUAL这是有问题的。所以您可以看看,只要去掉您的ORDER BY ROWNUM DESC,这个语句马上就正确了。
或者使用上面我写的两个语句中的一个也可以。