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

OracleとSQLサーバーを使用したページングと一般的なページング方法

    残念ながら、クエリによって返される行の範囲を制限する方法は、DBMSごとに異なります。OracleはROWNUMを使用しますが(ocdecioの回答を参照)、ROWNUMはSQLServerでは機能しません。

    おそらく、これらの違いを、特定のSQLステートメントと最初と最後の行番号を受け取り、ターゲットDBMSに適切なpaginatd SQLを生成する関数でカプセル化できます(例:

    )。
    sql = paginated ('select empno, ename from emp where job = ?', 101, 150)
    

    戻るだろう

    'select * from (select v.*, ROWNUM rn from ('
     + theSql
     + ') v where rownum < 150) where rn >= 101'
    

    Oracleの場合とSQLServerの場合。

    ただし、Oracleソリューションでは、処理する必要のある結果に新しい列RNが追加されていることに注意してください。



    1. #temptableと##TempTableの違いは?

    2. PHPメール検証リンクの最も簡単な方法

    3. 配列パラメータをネイティブクエリにバインドします

    4. SQLでデータを変換するための関数はありますか