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

Row_Numberを使用したSQLクエリ、orderbyおよびwhere句

    rownumは、結果セットのの行をカウントする疑似列です。 where句が適用されました。

    これはあなたが得ようとしているものですか?

    SELECT *
    FROM ( 
        SELECT id, column1, column2
        FROM atable ORDER BY 2 DESC
    ) 
    WHERE ROWNUM < 100;
    

    これは、where句から生じる行の厳密なカウンターである疑似列であるため、ページ付けを行うことはできません(つまり、200〜300)。

    これはおそらくあなたが探しているものです:

    SELECT *
    FROM
     (SELECT a.*, rownum rnum FROM
         (SELECT id, column1, column2 FROM atable ORDER BY 2 DESC) a WHERE rownum <= 300)
    WHERE rnum >= 200;
    


    1. SQLServerの重複キー更新に関するMySQLと同等

    2. Oracleビューの基になる列とテーブル名を見つけるにはどうすればよいですか?

    3. plsqlで文字列をトークンに分割します

    4. ExcelでSQLiteクエリ結果を自動的に開く