我需要从我的 C# 代码创建对 oracle 数据库的请求,这将为网站上的页面选择行。例如,我想为第二页获取 100 到 200 的行。我找到了一些真正有效的代码
SELECT * FROM
(
SELECT a.*, rownum r__
FROM
(
SELECT * FROM ORDERS WHERE CustomerID LIKE 'A%'
ORDER BY OrderDate DESC, ShippingDate DESC
) a
WHERE rownum < ((pageNumber * pageSize) + 1 )
)
WHERE r__ >= (((pageNumber-1) * pageSize) + 1)
它有效,我可以在更改此块内部时使用它
SELECT * FROM ORDERS WHERE CustomerID LIKE 'A%'
ORDER BY OrderDate DESC, ShippingDate DESC
但它是如何工作的?我无法理解。我熟悉 SQL 请求,但什么是
SELECT a.*, rownum r__
是什么
) a
FROM 换行后?
你能这么好心地解释一下这个包装吗?