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