Oraclerow_number()在()解析函数的有效实现分页
创建表t_news
(
身份证号码,
n_type VARCHAR2(20),
n_title VARCHAR2(30),
n_count数
)
提示禁用触发器t_news…
修改表t_news禁用所有触发器;
即期装船t_news…
插入t_news(ID,n_type,n_title,n_count)
值(1,,爱的表示,100);
插入t_news(ID,n_type,n_title,n_count)
价值观(2),体育,爱运动1,10);
插入t_news(ID,n_type,n_title,n_count)
价值观(3),体育,爱运动2,30);
插入t_news(ID,n_type,n_title,n_count)
值(4,,爱鱼,300);
插入t_news(ID,n_type,n_title,n_count)
值(5,,爱它,200);
插入t_news(ID,n_type,n_title,n_count)
价值观(6),体育,爱运动3,20);
插入t_news(ID,n_type,n_title,n_count)
价值观(7),体育,爱运动4,60);
Commit;
第一步:我使用rownum第一
-分页row_number,没有行号
-根据n_count从大到小,每一页3页
行号R,T * t_news T
在rownum <= 3
通过t.n_count倒序
问题:为什么订单号在订购后会变得凌乱
行号R,T * t_news T
原因:线数分第一,然后n_count排序
-所以你必须对它进行排序,然后创建一个行号
行号R,T *(
选择T * t_news以t.n_count DESC)T T
-分页
呃
行号R,T *(
选择T * t_news以t.n_count DESC)T T
r在1和3之间
第一页
行号R,T *(
选择T * t_news以t.n_count DESC)T T
在行号1和3之间
第二页
行号R,T *(
选择T * t_news以t.n_count DESC)T T
WHERE ROWNUM between 4 AND 6
错误:rownum必须从1开始!
选择K(从
行号R,T *(
选择T * t_news以t.n_count DESC)T T
K)
r在4和6之间
-故障,效率低!
继第二步:我用row_number(结束)(功能)
从中选择
(选择T *,row_number()在(由t.n_count倒序)数量从t_news T)。
***************************************************************************************************************************************** 88
选择*(从
选择T *,row_number()在(由n_count倒序)R
从t_news T
通过t.n_count倒序
T)
r在4和6之间
一般语法:解析函数()超过(按字段按字段顺序划分)