Oracleに関するglcsのブックマーク (3)
-
分析関数 ROW_NUMBER の使用例 Top | Knowledge| DB構築| 文字列関数| 日付関数| 集計関数| SQL関数︵アルファベット順︶ SQL︵抽出・更新︶| SQL*Plus| PL/SQL| Utility| Structure| スキーマ| チューニング| 用語| 参考書 ROW_NUMBER 分析ファンクションの使用例 ROW_NUMBER ファンクションを使用することで、上位n件、下位n件、中間順位n件のレコードを抽出することができる。 (ROWNUM 擬似列は、ORDER BY より先に実行されるため、ROW_NUMBER と同じ処理をするにはインラインビューで抽出する。) ROW_NUMBER の内部ソートは 非決定的 なファンクションであるため、複数回コールして分割取得するような用途として使用する場合には一意にソートされるように注意が必要。RO
-
postgreSQLにはlimit offsetがあり時には非常に便利な機能。 Oracleの場合、ROWNUMを使って似たような事が出来ます。 Oracleにおいて、HOGEテーブルの検索結果の中から最初の10件を取得したい場合は select * from HOGE where rownum <= 10;または select * from HOGE where rownum between 1 and 10;とします、これは一般的によく使われる方法と思います。 では、10件目から5件取得したいとなった場合はどうでしょう。 上記と同じように select * from HOGE where rownum between 10 and 15;または select * from HOGE where 10 <= rownum and rownum <= 15;とすれば良いのでは?と思いますが
-
ページングでSelect結果の一部のデータをしたいとき、PostgreSQLやMySQLで使用できるLimit句はとても便利。たとえばSelect結果の10から14番目までを取得するにはselect * from emp where Limit 10,5でもOracleではLimit句は使えない... ということでOracleではROWNUMを使用してやってみる。(Oracle10g Windows版で検証) ところがこのROWNUMは一筋縄ではいかないのであった。 Order By 句を使って並べ替えをすると、ROWNUMが...select rownum rn ,t.住所コード ,t.市区町村名 ,t.住所1 ,t.住所2 from tb_住所マスタ t order by 住所2;結果RN住所コード市区町村名住所1住所2
-
1