[pgsql-jp: 28762] Re: SQL文での条件判定について
UNO Shintaro
uno @ venus.dti.ne.jp
2003年 1月 24日 (金) 20:26:08 JST
>ただまだ何をやっているのか理解していないので、
>じっくり理解してみますね。
基本的な考え方は、
「優先順位が、col2でくくったグループ内での最高優先順位と同じであれば
表示する」です。優先順位の計算を、POSITION関数で表現しています。
で、一つうっかりしていました。
col3が 0400 0500 0600 0700 0300 0200 0100 のいずれでもないデータは
表示しないようにしたいんですよね。
SELECT * FROM a
WHERE POSITION( '*' || col3 || '*' IN '*0100*0200*0300*0700*0600*0500*0400*') > 0
AND POSITION( '*' || col3 || '*' IN '*0100*0200*0300*0700*0600*0500*0400*')
= (SELECT MAX(POSITION( '*' || col3 || '*' IN '*0100*0200*0300*0700*0600*0500*0400*'))
FROM a a2 WHERE a.col2=a2.col2)
なんだかみにくくなってきちゃいましたけど・・・。
--
UNO Shintaro, 宇野 信太郎
mailto:uno @ venus.dti.ne.jp
http://www.venus.dti.ne.jp/~uno/
pgsql-jp メーリングリストの案内