SQLServerの制限10..20
Limit 10 20 Sql Server
解決:
SQL Server 2012+の場合はを使用できます。
SELECT * FROM sys.databases ORDER BY name OFFSET 5 ROWS FETCH NEXT 5 ROWSONLY
NSLIMIT句は標準SQLの一部ではありません。これは、MySQL、PostgreSQL、およびSQLiteによるSQLのベンダー拡張としてサポートされています。
他のブランドのデータベースにも同様の機能がある場合があります(例:Microsoft SQL ServerのTOP)ですが、これらは常に同じように機能するとは限りません。
使いにくいMicrosoft SQLServerのTOPでLIMIT句。うまくいかない場合があります。
あなたが示した解決策は、ROW_NUMBER()は、Microsoft SQL Server2005以降で使用できます。これは、クエリの一部としてのみ機能する(今のところ)最良のソリューションです。
別の解決策は使用することです最初にフェッチするTOP カウント + オフセット 行、次にAPIを使用して最初の行を超えてシークします オフセット 行。
参照:
- 「MicrosoftSQLServer2000でMySQLLIMIT句をエミュレートする」
- 「ASP.NETでの大規模な結果セットのページング」
お気づきのとおり、これは推奨されるSQLサーバーの方法です。
SELECT * FROM(SELECT *、ROW_NUMBER()OVER(ORDER BY name)as row FROM sys.databases)a WHERE a.row> 5 and a.row<= 10