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

mod関数を使用したOracleのrownumの動作

    ROWNUM クエリを実行するまで割り当てられないため、WHEREで使用することはできません。 そのような節。

    次のことができます:

    SELECT COUNT(*) 
    FROM
    (
      select v1, v2, rownum rn
      from Foo 
    ) f
    WHERE mod(rn,2) = 0;
    

    ROWNUM 結果セット内の行の位置であり、レコードが選択された後に評価されます。

    これらのタイプのクエリは機能しません:

    WHERE ROWNUM > x
    WHERE ROWNUM BETWEEN x AND y
    

    しかし、これは機能します

    WHERE ROWNUM < x
    

    rownumを評価したいので modを使用 rownumのため、機能しません その時点では利用できません。これが、modを使用するためにサブクエリに配置する必要がある理由です。 関数。



    1. LIKEオペレーターによるMySQLインジェクション

    2. Insert ... ON DUPLICATE KEY UPDATEusingknexを使用して複数の行を追加する方法

    3. node-pgのテーブル名として変数を使用するにはどうすればよいですか?

    4. MySQLストアドプロシージャでトランザクションを使用するにはどうすればよいですか?