ホームページ >データベース >mysql チュートリアル >MySQL の LIMIT 句に相当する SQL Server を実装するにはどうすればよいですか?

MySQL の LIMIT 句に相当する SQL Server を実装するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-14 07:16:43989ブラウズ

How to Implement SQL Server's Equivalent of MySQL's LIMIT Clause?

SQL Server で LIMIT 機能を実現する

SQL Server は、MySQL の LIMIT 句をミラーリングして、クエリによって返される行数を制限するいくつかの方法を提供します。

SQL Server 2005 以降のバージョン

SQL Server 2005 以降では、Common Table Expression (CTE) 内の ROW_NUMBER() 関数がクリーンなソリューションを提供します。 これがイラストです:

<code class="language-sql">USE AdventureWorks;
GO
WITH NumberedOrders AS (
    SELECT SalesOrderID, OrderDate,
           ROW_NUMBER() OVER (ORDER BY OrderDate) AS RowNum
    FROM Sales.SalesOrderHeader
)
SELECT *
FROM NumberedOrders
WHERE RowNum BETWEEN 10 AND 20;</code>

古い SQL Server バージョン (2000 以前)

SQL Server 2005 より前のバージョンの場合は、TOPORDER BY を組み合わせたアプローチが必要です。

<code class="language-sql">SELECT TOP 10 * 
FROM (SELECT TOP 20 * FROM YourTable ORDER BY Id) AS Subquery
ORDER BY Id DESC;</code>

この手法では、最初に上位 20 行を取得し、次にそのサブセットから上位 10 行を選択し、範囲ベースの制限を効果的に実現します。 正しい結果を得るには、ネストされた ORDER BY が重要であることに注意してください。 YourTableId を実際のテーブルと順序付け列に置き換えます。

以上がMySQL の LIMIT 句に相当する SQL Server を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。