类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
有什么方法可以用sql语句直接解决分页?
网友回答:
下面是一个查询,用于根据类别“Books”从产品表中选择前 20 条记录。
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_DESCRIPTION,
PRODUCT_PRICE, PROD_CATEGORY_ID
FROM PRODUCT,PRODUCT_CATEGORY
WHERE
PRODUCT.PROD_CATEGORY_ID
= PRODUCT_CATEGORY.CATEGORY_ID
AND
PRODUCT_CATEGORY.CATEGORY_ID = Books
ORDER BY PRODUCT.PRODUCT_ID
FETCH FIRST 20 ROWS ONLY
以下是一个示例,演示了如何从编号为 21 到 40 的行中选择结果。我们假设用户定下的选择标准是:类别为“Books”,产品描述为“Application Servers”。
SELECT * FROM (
SELECT PRODUCT_ID, PRODUCT_NAME,
PRODUCT_DESCRIPTION, PRODUCT_PRICE,
rownumber() OVER
(ORDER BY PRODUCT_ID)
AS ROW_NEXT
FROM PRODUCT,PRODUCT_CATEGORY WHERE
PRODUCT.PROD_CATEGORY_ID
= PRODUCT_CATEGORY.CATEGORY_ID
AND
PRODUCT_CATEGORY.CATEGORY_ID = Books
AND
PRODUCT.PRODUCT_DESCRIPTION LIKE
Application Servers
)
AS PRODUCT_TEMP WHERE
ROW_NEXT BETWEEN 21 and 40
在一个基于 Web 的应用程序中,参数 “21” 和 “40”可以在运行时指定。下面是修改后的查询:
SELECT * FROM (
SELECT PRODUCT_ID, PRODUCT_NAME,
PRODUCT_DESCRIPTION, PRODUCT_PRICE,
rownumber() OVER
(ORDER BY PRODUCT_ID) AS ROW_NEXT
FROM PRODUCT,PRODUCT_CATEGORY
WHERE
PRODUCT. PROD_CATEGORY_ID
= PRODUCT_CATEGORY.CATEGORY_ID
AND
PRODUCT_CATEGORY.CATEGORY_ID = Books
AND
PRODUCT. PRODUCT_DESCRIPTION LIKE
Application Servers
)
AS PRODUCT_TEMP WHERE
ROW_NEXT BETWEEN ? and ?
rownumber() 函数允许开发人员动态地将行号指定给结果集。
收藏
为什么我用"ROW_NEXT BETWEEN 21 and 40 ",SQL有问题哦,不能执行.ROW_NEXT有什么限制吗?
marked