/* Formatted on 2010/11/26 09:06 (Formatter Plus v4.8.6) */
SELECT b.*
FROM (SELECT ROWNUM pagination_num, a.*
FROM (SELECT s.storehouse_id, i.storehouse_name, s.materiel_name,
s.materiel_num, s.unit_name, s.total_money,
s.material_sign,
(SELECT d.dictdata_name
FROM td_sm_dictdata d, td_sm_dicttype t
WHERE d.dicttype_id = t.dicttype_id
AND t.dicttype_name = 'materialSign'
AND d.dictdata_value = s.material_sign) CATEGORY,
s.unit_id, s.materiel_type,
(SELECT d.dictdata_name
FROM td_sm_dictdata d, td_sm_dicttype t
WHERE d.dicttype_id = t.dicttype_id
AND t.dicttype_name = 'MATERIEL_TYPE'
AND d.dictdata_value = s.materiel_type) model,
s.goodsrack_id, s.item_id, s.incept_state, s.city_id,
s.materiel_id,
NVL ((SELECT p.project_name
FROM td_newstorage_project p
WHERE p.project_id = s.item_id),
''
) project_name,
m.materiel_spec, m.materiel_model, g.goodsrack_name,
TO_CHAR (m.up_value) up_value,
TO_CHAR (m.down_value) down_value,
TO_CHAR
((SELECT SUM (materiel_num)
FROM td_newstorage_stockpile needsum
WHERE needsum.depositary_id = s.depositary_id
AND needsum.storehouse_id = s.storehouse_id
AND needsum.incept_state = s.incept_state
AND needsum.item_id = s.item_id
AND needsum.material_sign = s.material_sign
AND needsum.materiel_id = s.materiel_id
AND needsum.materiel_type = s.materiel_type
AND needsum.unit_id = s.unit_id)
) sum_materiel
FROM td_newstorage_stockpile s,
td_newstorage_materiel_info m,
td_newstorage_goodsrack g,
td_newstorage_info i
WHERE s.materiel_id = m.materiel_id
AND s.goodsrack_id = g.goodsrack_id
AND s.storehouse_id = i.storehouse_id
AND s.materiel_num <> 0
AND s.depositary_id IN (
SELECT i.depositary_id
FROM td_newstorage_situs_info i
WHERE i.storehouse_id =
'CKXX2007120716465498')
AND s.depositary_id IN (SELECT m.depositary_id
FROM td_newstorage_keeping_ref m
WHERE m.keeping_id = 'admin')
ORDER BY s.storehouse_id, s.item_id,s.goodsrack_id, s.incept_state) a
--WHERE ROWNUM <= 10
) b
WHERE pagination_num <= 10 and pagination_num >= 1
分享到:
相关推荐
综上所述,Oracle伪列如ROWID和ROWNUM在实际应用中发挥着重要作用,不仅可以帮助优化查询性能,还能轻松实现复杂的分页功能。同时,通过Java JDBC编程,可以进一步提升应用程序与Oracle数据库的集成度和灵活性。
在Oracle 9i及更高版本中,可以使用ROWNUM伪列进行分页。ROWNUM是在查询结果集生成时被赋予的数值,表示行的顺序。例如,如果我们想要获取前10条记录,可以使用以下查询: ```sql SELECT * FROM ( SELECT t.*, ...
在早期的Oracle版本中,ROWNUM伪列被广泛用于分页。ROWNUM是在结果集生成时自动分配的,表示每一行的顺序号。例如,以下存储过程展示了基于ROWNUM的分页查询: ```sql CREATE OR REPLACE PROCEDURE get_paged_...
Oracle提供了一种名为ROWNUM的伪列,它会为每一行返回一个唯一的数字,从1开始递增。通过ROWNUM,我们可以实现简单的分页。例如,如果我们想获取第1页(通常包含前10条记录),可以编写如下的SQL查询: ```sql ...
本文将讲解 Oracle 中的分页查询,包括使用 ROWNUM 伪列和 ORDER BY 子句对查询结果进行排序和分页。 一、使用 ROWNUM 伪列实现分页查询 在 Oracle 中,ROWNUP 伪列是一个特殊的列,可以用来实现分页查询。例如,...
### Oracle数据库伪列简析:rownum与rowid的区别 在Oracle数据库中,存在一种特殊的数据类型被称为“伪列”,这些伪列虽然看起来像是表中的列,但实际上它们并不存储任何数据,而是由数据库动态生成的。本文将重点...
【Oracle伪列详解】 在Oracle数据库中,伪列是一种特殊的数据类型,它们表现得像普通列,但并不实际存储在表中。Oracle提供了两种主要的伪列:rowid和rownum,它们各自拥有独特的功能和用途。 一、rowid伪列 1. ...
Oracle支持“ROWNUM”伪列来实现分页,例如: ```sql SELECT * FROM ( SELECT ROWNUM rnum, t.* FROM YourTable t WHERE YOUR_CONDITION ) WHERE rnum BETWEEN startRow AND endRow; ``` 这里,`startRow`和`...
在SQL语句中,通常使用`ROWNUM`伪列来实现分页。`ROWNUM`表示每条记录的顺序号,从1开始递增。例如,如果我们想要获取前10条记录,可以这样写: ```sql SELECT * FROM (SELECT ROW_NUMBER() OVER() AS ROWNUM, t.* ...
在Oracle数据库中,实现分页查询通常有两种方法:一种是使用`ROWNUM`伪列,另一种则是通过存储过程实现。其中,使用存储过程进行分页更加灵活且易于维护。 #### 二、存储过程分页的优势 1. **提高性能**:存储过程...
Oracle数据库提供了多种方法来实现分页查询,其中包括使用ROWNUM伪列、游标(CURSOR)以及Oracle的高级分页功能如ROW_NUMBER()、RANK()和DENSE_RANK()等。 1. ROWNUM伪列: ROWNUM是Oracle数据库特有的一个伪列,它...
1. **ROWNUM**:Oracle提供了一个内置的伪列`ROWNUM`,它可以为查询结果集中的每一行返回一个唯一的行号。`ROWNUM`从1开始计数,并且只能用于`WHERE`或`HAVING`子句。 2. **OFFSET与FETCH FIRST**:虽然Oracle本身不...
Oracle数据库提供了多种方式来实现分页查询,其中最常用的是使用ROWNUM伪列。ROWNUM是在查询结果集返回之前被赋予的一个整数值,表示行的顺序。例如,如果我们想要获取第10到20条记录,可以使用以下SQL语句: ```...
1. **ROWNUM分页**:Oracle中的ROWNUM伪列可以用来实现简单的分页。它会为每一行返回的数据赋予一个唯一的数字,从1开始递增。例如,如果我们想获取第10到20行的数据,可以使用以下SQL语句: ```sql SELECT * FROM ...
在Oracle数据库中,分页查询是一项非常常见...总之,Oracle的分页可以通过ROWNUM伪列配合Java的JDBC实现,也可以借助ORM框架进行更高级的封装。理解这些概念和技巧,对于开发过程中处理大规模数据的分页查询至关重要。
在Oracle中,可以通过游标(Cursor)和ROWNUM伪列来实现分页。ROWNUM是在查询过程中为每行生成的唯一数字,我们可以利用它来限制返回的行数。 在Java中,我们通常使用JDBC(Java Database Connectivity)API来与...
在Oracle中,我们可以使用ROWNUM伪列来进行分页,但这种方法在某些情况下效率不高,尤其是当查询条件包含ORDER BY子句时。 为了实现更高效的分页,我们可以创建一个存储过程,该过程接受两个参数:当前页号(PageNo...
Oracle中通常使用ROWNUM伪列实现分页。ROWNUM在查询时为每行生成一个唯一的数字,但需要注意的是,ROWNUM在查询时是立即计算的,因此不能直接用于分页,需要结合子查询或者连接来实现。例如,获取第一页(每页10条...
在Oracle中,可以利用`ROWNUM`伪列实现分页。在这个例子中,我们设定每页显示5条记录(`lineSize = 5`),当前页为1(`currentPage = 1`)。首先,创建一个子查询,将`ROWNUM`与实际记录关联起来,限制返回的行数不超过`...
Oracle数据库支持多种分页方法,其中一种是通过ROWNUM伪列实现。ROWNUM是在查询结果集生成时自动分配的一个数值,表示行的顺序。为了进行分页,我们需要结合WHERE子句来筛选特定范围的行。例如,如果我们想要获取第...