[pgsql-jp: 28752] SQL文での条件判定について
Iso, Toshitaka
Toshitaka.Iso @ hp.com
2003年 1月 24日 (金) 16:34:45 JST
いそと申します。初めて投稿させていただきます。
【環境】
OS:Redhat Linux 7.2
DB:PostgreSQL 7.2.1
SQLの条件判定についてお教え下さい。
以下のような状態の表があるとします。
カラム1(PK) カラム2 カラム3
1 10000000 0100
2 10000000 0200
3 10000000 0300
4 10000000 0400
5 10000000 0500
6 10000000 0600
7 10000000 0700
8 10000000 0800
9 10000000 0900
10 10000000 1000
11 11000000 0200
12 11000000 0300
13 11000000 0600
14 12000000 0300
カラム3の値に優先順位が以下の順で決められていています。
0400>0500>0600>0700>0100>0200
ここでカラム2の値単位で優先順位の高いものだけを表示したいの
ですがどのような方法があるのかを調べています。
具体例ですが、カラム2の値ごとに、始めにカラム3に
0400があるかを検索しあった場合は表示して終わり、
無ければ0500を検索してあった場合は終わり、
という処理を上記の優先順序の数だけやり、
上記の表の例で言うと、以下のような2行を表示する結果を期待しています。
4 10000000 0400 ←カラム2が1000000の中で、
1番優先度の高いもの(0400)があったので表示して終わり
13 11000000 0600 ←カラム2が11000000の中で、
1番目、2番目に優先度が高いものが無かったが、3番目に優先度の
高いもの(0600)があったので表示して終わり
←カラム2が12000000の中には優先順位に定義されているものが
無いため検索結果は表示しない。
Case When文で出来るかと思っているのですが、「見つかったら終わり」
という処理が出来ずに困っています。
どなたか方法をご存知の方がいらしたらご享授お願いいたします。
以上です。
Toshitaka.Iso
pgsql-jp メーリングリストの案内