- PR -

複数カラムによる範囲検索

投稿者投稿内容
ごー
ベテラン
会議室デビュー日: 2003/08/29
投稿数: 51
お住まい・勤務地: いるかホテル
投稿日時: 2004-08-02 11:07
こんな感じではダメでしょうか?
SQLseverで試したのですが他のデータベースでもいける気がします。


select *
From table as t1
Where
(select count(*) from table as t2 Where t1.feild1 + t1.feild2 > t2.feild1 + t2.feild2) >= 2
And (select count(*) from table as t2 Where t1.feild1 + t1.feild2 > t2.feild1 + t2.feild2) <= 5
るいるい
常連さん
会議室デビュー日: 2004/08/01
投稿数: 21
投稿日時: 2004-08-02 11:08
皆さん。貴重なご意見ありがとうございます。
引用:

 DBMSがOracleで、コストベース運用をされている場合、
 ファンクション索引(ファンクション・ベース索引)を検討されると宜しいかと思います。


Oracleであれば、確かにこのような方法がありましたね。最初に環境を明記すべきでしたが、実は、DBの種類に依存しない汎用的な仕組みを考えていたので、やはりSQLをガリガリと記述する方法かもしれません。

本来であれば、代替キーとしてレコードIDの様な単一カラムで一意となる項目を用意すべきなのですが、どうしても設計の古い既存のシステムを読み出す必要があるので、つらいところなんです。
unibon さんのおっしゃる通りSQLを生成するサブルーチンを作るのがアタリかもしれないですね。

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