繁体   English   中英

MS SQL Server 2005中的LIMIT样式功能

[英]LIMIT style functionality in MS SQL Server 2005

我已经看到了很多非常可怕的方法来做类似MySQL的MS SQL LIMIT函数。

任何人都可以建议一个很好的方式来做这样的事情:

SELECT * FROM blah LIMIT 5,15;

但在MS SQL?

干杯!

SQL Server相当于MySQL / PostgreSQL的LIMIT语法是TOP(SQL Server 2000+),但TOP不支持偏移值 ...

假设SQL Server 2005+,使用:

SELECT x.*
  FROM (SELECT t.*,
               ROW_NUMBER() OVER (ORDER BY ?) AS rank
          FROM BLAH t) x
 WHERE x.rank BETWEEN 6 AND 20

请注意,您必须为排名定义排序顺序 - 替换“?” 使用适当的列。

在SQL Server for LIMIT 5,15获取相同内容的方法之一是使用ROW_NUMBER() -

With t As
(
    Select ...
        , ROW_NUMBER() OVER ( Order By ... ) As Num
    From Table
)
Select ...
From t
Where Num Between 5 And 15

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM