sql >> データベース >  >> RDS >> Mysql

SQLデータベーステーブルのn番目の行を選択するにはどうすればよいですか?

    標準のオプション部分でこれを行う方法はいくつかありますが、多くのデータベースは独自の方法をサポートしています。

    これや他のことについて話している本当に良いサイトは、 http://troelsです。 arvin.dk/db/rdbms/#select-limit

    基本的に、PostgreSQLとMySQLは非標準をサポートしています:

    SELECT...
    LIMIT y OFFSET x 
    

    Oracle、DB2、およびMSSQLは、標準のウィンドウ関数をサポートしています。

    SELECT * FROM (
      SELECT
        ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber,
        columns
      FROM tablename
    ) AS foo
    WHERE rownumber <= n
    

    (これらのDBを使用したことがないため、上記のリンク先のサイトからコピーしたばかりです)

    更新: PostgreSQL 8.4以降、標準のウィンドウ関数がサポートされているため、2番目の例がPostgreSQLでも機能することを期待してください。

    更新: SQLiteは2018-09-15のバージョン3.25.0でウィンドウ関数のサポートを追加したため、両方のフォームがSQLiteでも機能します。



    1. 列の一意の値ごとに最初の行のみを選択するにはどうすればよいですか?

    2. 文字列フィールドからMySQLの日付を変換する

    3. 高可用性のためにChamiloMySQLデータベースをデプロイする方法

    4. SQL ServerORDERBYの日付とnullが最後