私は次のようなことをやろうとしています:
SELECT * FROM table LIMIT 10,20
または
SELECT * FROM table LIMIT 10 OFFSET 10
しかしSQL Serverを使用すると
唯一の私が見つけた解決策やり過ぎのようです:
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM sys.databases
) a WHERE row > 5 and row <= 10
私も見つかった:
SELECT TOP 10 * FROM stuff;
...しかし、開始制限を指定できないため、これは私がやりたいことではありません。
他にそれを実行する方法はありますか?
また、ちょっと気になったのですが、SQL Server がこの機能または類似の機能をサポートしない理由があるのでしょうかLIMIT
? 意地悪を言うつもりはありませんが、これは DBMS に必要な機能のように思えます... もし必要なら、無知で申し訳ありません! 私は過去 5 年間、MySQL と SQL+ を使ってきましたので...
ベストアンサー1
SQL Server 2012以降の場合使用できます。
SELECT *
FROM sys.databases
ORDER BY name
OFFSET 5 ROWS
FETCH NEXT 5 ROWS ONLY