oracle 有没有这样的 查询方式 比如
select rownum pid
from all_objects
where rownum in ( 321,403,402,561)
返回结果
pid
321
403
402
561
嵌套一层查询吧,rownum是伪列。
SELECT T.PID
FROM (SELECT ROWNUM PID FROM ALL_OBJECTS) T
WHERE T.PID IN (321, 403, 402, 561);
ORACLE的rownum是一个伪列,该关键字只能作三种运算,即:rownum<n,rownum<=n,以及rownum=1,n为一个整型数。而关键字 IN 的运算相当于等值的或运算(以你的例子为例,即:rownum = 321 or rownum = 403 rownum = 402 rownum = 561 )所以会出错。
但是可以用rownum的别名作其他运算。可以参考楼上的回答。