SELECT *
FROM (SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40)
WHERE RN >= 21;
SELECT *
FROM (SELECT A.*, ROWNUM
FROM (SELECT * FROM t_meta_goods) A
WHERE ROWNUM <= 40)
WHERE ROWNUM >= 21;麻烦看下这2个sql,为什么第一种可以查出数据,第二种就查不到数据呢?
FROM (SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40)
WHERE RN >= 21;
SELECT *
FROM (SELECT A.*, ROWNUM
FROM (SELECT * FROM t_meta_goods) A
WHERE ROWNUM <= 40)
WHERE ROWNUM >= 21;麻烦看下这2个sql,为什么第一种可以查出数据,第二种就查不到数据呢?
这个我知道呀
但是
WHERE RN >= 21;中的RN不就是ROWNUM 的笔名吗?SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A
这个我知道呀
但是
WHERE RN >= 21;中的RN不就是ROWNUM 的笔名吗?SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A
你说的对啊,你也说了,第一个能查出数据,第二个查不出来。第一个能查出数据,因为内查询的rownum已经变成RN了,但是第二个查不出来,因为你外查询又使用到了rownum,他表示外查询的rownum呀
FROM (SELECT A.*, ROWNUM ru -------加别名
FROM (SELECT * FROM t_meta_goods) A
WHERE ROWNUM <= 40)
WHERE ru>= 21;这样可以的