何时是使用SQL语句的适当时间;从[tables]中选择[results],其中[conditions]仅获取前[n]行;
我不确定只选择一定数量的行是否比简单地生成更具体的select语句更好。我有一种感觉,我错过了一些非常直接的东西,但我无法理解。我对任何SQL的使用经验都不到6个月,而且还很粗略,所以如果这是一个非常简单的问题,我很抱歉,但我找不到明确的答案。通常是自定义分页。当您想向用户显示值时,您可能只需要N行。通常,数据库服务器可以获取前N行,比获取所有行的速度快,因此屏幕重画可以快一点何时是使用SQL语句的适当时间;从[tables]中选择[results],其中[conditions]仅获取前[n]行;,sql,select,Sql,Select,我不确定只选择一定数量的行是否比简单地生成更具体的select语句更好。我有一种感觉,我错过了一些非常直接的东西,但我无法理解。我对任何SQL的使用经验都不到6个月,而且还很粗略,所以如果这是一个非常简单的问题,我很抱歉,但我找不到明确的答案。通常是自定义分页。当您想向用户显示值时,您可能只需要N行。通常,数据库服务器可以获取前N行,比获取所有行的速度快,因此屏幕重画可以快一点 Oracle甚至有一个名为FIRST_ROWS的提示,表明快速恢复数据比高效恢复数据更重要。我们之所以使用该语句,原因
Oracle甚至有一个名为FIRST_ROWS的提示,表明快速恢复数据比高效恢复数据更重要。我们之所以使用该语句,原因如下:
SQL的设计者同意您的观点,这就是为什么标准SQL不包括top/limit/fetch first等。想想谷歌搜索结果和搜索结果的页面数量
虽然很明显,在他们的案例中还有更多的内容,但这就是想法。我知道两种常用用法: 分页:确保指定一个顺序。如果没有指定顺序,许多db实现会使用任何便于执行查询的方法。这种“最优”排序行为可能会产生非常不可预测的结果
SELECT top 10 CustomerName
FROM Customer
WHERE CustomerID > 200 --start of page
ORDER BY CustomerID
子查询:可以发出子查询的许多地方都要求结果为单个值。在许多情况下,top 1的速度比max快
--give me some customer that ordered today
SELECT CustomerName
FROM Customer
WHERE CustomerID =
(
SELECT top 1 CustomerID
FROM Orders
WHERE OrderDate = @Today
)
除了分页之外,任何时候您想要从表中获得最多或最少的[insert metric here]行,按[Anwhere metric]排序并限制为1行,IME,都比使用MIN/MAX进行子查询要好。引擎可能会有所不同