- PR -

SQLの結果を分割して取得する方法について

投稿者投稿内容
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2007-01-22 09:32
引用:

Tetraさんの書き込み (2007-01-19 21:16) より:
Oracle7 の環境はないので動作確認していませんが
スカラー副問い合わせ<式>が Oracle 9iの新機能なので
Oracle7 でもスカラー副問い合わせを使用した
相関副問い合わせは可能だと思いますよ。


すいません。ご指摘の通りです。
Oracle 7.1の頃のSQLリファレンスマニュアルにも相関副問い合わせは出ています。
miyavi
常連さん
会議室デビュー日: 2006/12/07
投稿数: 27
投稿日時: 2007-01-22 10:07
お世話になっております。

たくさんのお返事ありがとう御座います。
また、返信が遅くなりまして、申し訳ありません。

まず結論として、偶然ですが5月にoracleのバージョンアップを行う事になり、
oracle9を導入する事になりました。
これでorder byの前にrownumを実行する事が出来る為、問題を解決できそうです。
(また、row_number()の使用も検討してみます)

教えて頂いた方法について、色々検証を行いました。

OTNを使用した方法>
ミドルウェアが何であるかは良く分からないのですが、
C#.NETでSQL文を生成し、OleDbDataAdapterを使用してデータセットに格納しております。

様々なSQLをこの手法で実行しており、例外を作りたくない為、OTNは使用しない方向で考えました。

スカラー副問い合わせ>
これについては良く分からなかったのですが、Where句でSelect文を使用できる場合と出来ない場合があり、
明智重蔵さんのリンクで書かれている相関サブクエリを利用したSQLでは実行できませんでした。
使い方によっては実行できないのかもしれません。

また、row_numberの危険性についても把握しましたので、リスクを考えて検討してみます。

結果として、order byが使用できない以上、データが常に同じ結果が返されるか不明である為、上記の通りバージョンアップ後に行う事にします。

お教え頂きました内容につきましては、今後の参考にさせていただきます。

それでは、どうもありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)