首页 新闻 会员 周边

关于Oracle 的查询结果问题

0
悬赏园豆:20 [待解决问题]

oracle 有没有这样的 查询方式 比如 

select rownum pid
from all_objects
where rownum in ( 321,403,402,561)

返回结果

pid

321

403

402

561

Look_Sun的主页 Look_Sun | 初学一级 | 园豆:182
提问于:2013-05-03 14:25
< >
分享
所有回答(2)
1

嵌套一层查询吧,rownum是伪列。

SELECT T.PID
  FROM (SELECT ROWNUM PID FROM ALL_OBJECTS) T
 WHERE T.PID IN (321, 403, 402, 561);

亿度思考 | 园豆:202 (菜鸟二级) | 2013-05-03 15:33
0

ORACLE的rownum是一个伪列,该关键字只能作三种运算,即:rownum<n,rownum<=n,以及rownum=1,n为一个整型数。而关键字 IN 的运算相当于等值的或运算(以你的例子为例,即:rownum = 321 or rownum = 403 rownum = 402 rownum = 561 )所以会出错。

但是可以用rownum的别名作其他运算。可以参考楼上的回答。

Wolfe Yu | 园豆:434 (菜鸟二级) | 2013-05-06 14:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册