SQL Server で MySQL の LIMIT をレプリケートする
MySQL の LIMIT
句は、返される行数を制限します。 SQL Server は、TOP
句を使用してこれを実現します。 同じ機能を取得する方法は次のとおりです:
SQL Server 2005 以降
SQL Server 2005 以降のバージョンの場合、一般的なアプローチには ROW_NUMBER()
:
<code class="language-sql">SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY Id) as RowNum FROM OrderedOrders ) as RankedOrders WHERE RowNum BETWEEN 10 AND 20;</code>
これにより、各行に一意のランクが割り当てられ、そのランクに基づいてフィルタリングされます。
SQL Server 2000 以前
古いバージョン (SQL Server 2000 以下) では、ネストされた SELECT
ステートメントが必要です。
<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) as SubQuery ORDER BY Id DESC;</code>
これは、最初に上位 20 行を選択し、次にそのサブセットから上位 10 行を選択します。一貫した結果を得るには 2 番目の ORDER BY
句が重要であることに注意してください。 両方のクエリの順序は、目的の行を取得するために重要です。
以上がMySQL の LIMIT 句と同等のものを SQL Server に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。