MySQL の LIMIT 句に相当する SQL Server
クエリによって返される行数を制限する MySQL の LIMIT 句には、直接同等のものはありません。 SQLサーバーで。これはイライラするかもしれませんが、利用可能な回避策がいくつかあります。
OFFSET / FETCH 構文 (SQL Server 2012 以降)
SQL Server 2012 以降では、ANSI標準の OFFSET / FETCH 構文をページネーションに使用できます。次のクエリは、この構文を示しています。
SELECT ID, Name, Price, Image FROM Products ORDER BY ID ASC OFFSET (@start_from - 1) ROWS FETCH NEXT @items_on_page ROWS ONLY;
ROW_NUMBER() メソッド (SQL Server 2012 より前)
SQL Server 2012 より前は、ROW_NUMBER() メソッドLIMIT をシミュレートするために使用できます。句:
WITH o AS ( SELECT TOP ((@start_from - 1) + @items_on_page) RowNum = ROW_NUMBER() OVER (ORDER BY ID ASC) /* , other columns */ FROM Products ) SELECT RowNum /* , other columns */ FROM o WHERE RowNum >= @start_from ORDER BY RowNum;
その他の回避策
上記の方法に加えて、カーソルや一時テーブルの使用など、他のさまざまな回避策が利用可能です。ただし、これらのソリューションは一般に効率が低く、より複雑です。
Microsoft は現在のページネーション メカニズムの限界を認識しており、将来のリリースで SQL Server にネイティブ LIMIT サポートを追加することに関心を示していることに注意することが重要です。
以上がSQL Server で MySQL の LIMIT 句をレプリケートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。