/ / MS SQL Server 2005のLIMITスタイル機能-mysql、sql、sql-server

MS SQL Server 2005のLIMITスタイル機能 - mysql、sql、sql-server

私は、MSSQL用のMySQLのLIMIT関数のようなことを行うための非常に恐ろしい方法をたくさん見てきました。

誰かがこのようなことをするための素敵でエレガントな方法を提案できますか?

SELECT * FROM blah LIMIT 5,15;

しかし、MS SQLでは?

乾杯!

回答:

回答№1は4

MySQL / PostgreSQLのLIMIT構文に相当するSQLServerは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

ランキングの並べ替え順序を定義する必要があることに注意してください。「?」を置き換えてください。適切な列を使用します。


回答№2については2

SQLServerで同じものを取得する方法の1つ 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