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

SQL Server で MySQL の LIMIT 句をレプリケートするにはどうすればよいですか?

DDD
リリース: 2024-12-08 02:29:11
オリジナル
824 人が閲覧しました

How to Replicate MySQL's LIMIT Clause in SQL Server?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート