[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 メーリングリストの案内