首页 新闻 搜索 专区 学院

遇到个ORACLE问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-06-26 09:46

分页查询

SELECT * FROM 
(
SELECT A.*, ROWNUM RN 
FROM (SELECT * FROM TABLE_NAME) A 
WHERE ROWNUM <= 40
)
WHERE RN >= 21

 

中  A.*什么意思?

难道是新建一张A表作为缓冲表?

然后写了以下sql语句

select *,rownum from (select * from LOG where rownum<=40 );

数据库报错,然后我又改为以下语句

select username,rownum from (select * from LOG where rownum<=40 );

能得到username列和rownum列分页正常,那么为什么*和rownum不能共存呢?

无边华幕的主页 无边华幕 | 初学一级 | 园豆:63
提问于:2013-06-25 18:19
< >
分享
最佳答案
1

rownum是oracle中的关键字,使用rownum和*号共存必须在*前加上别名.  或者会报错。

收获园豆:7
webaspx | 小虾三级 |园豆:1973 | 2013-06-25 22:04

非常感谢,你解答了rownum与*号共存的问题,上面解答了A的意图

无边华幕 | 园豆:63 (初学一级) | 2013-06-26 09:45
其他回答(2)
0

*一般都是全部的意思,*估计包括了rownum.

心忘记zyf | 园豆:202 (菜鸟二级) | 2013-06-25 19:14
1

相当于

SELECT * FROM 
(
SELECT A.*, ROWNUM AS RN 
FROM (SELECT * FROM TABLE_NAME) AS A 
WHERE ROWNUM <= 40
)
WHERE RN >= 21
收获园豆:3
56180825 | 园豆:1545 (小虾三级) | 2013-06-25 20:16

非常感谢,  你解答了A的意图

支持(0) 反对(0) 无边华幕 | 园豆:63 (初学一级) | 2013-06-26 09:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册