[pgsql-jp: 28761] Re: SQL文での条件判定について

Iso, Toshitaka Toshitaka.Iso @ hp.com
2003年 1月 24日 (金) 20:01:24 JST


宇野さん。

ご返答ありがとうございます。

この方法でやってみます。

ただまだ何をやっているのか理解していないので、
じっくり理解してみますね。

以上です。本当にありがとうございました。

以上です。

-----Original Message-----
From: UNO Shintaro [mailto:uno @ venus.dti.ne.jp] 
Sent: Friday, January 24, 2003 7:44 PM
To: pgsql-jp @ ml.postgresql.jp
Subject: [pgsql-jp: 28760] Re: SQL文での条件判定について


>確かにテーブルを追加すれば出来そうなのですが
>テーブルを追加するのは厳しそうなんです。

>P.S. すみません。優先順位は
>0400>0500>0600>0700>0300>0200>0100
>の間違いでした。。

こんな方法はいかがでしょう。

uno=# select * from a;
 col1 |   col2   | col3
------+----------+------
    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
(14 rows)

uno=# SELECT * FROM a
uno-#  WHERE POSITION( '*' || col3 || '*' IN '*0100*0200*0300*0700*0600*0500*0400*')
uno-#      = (SELECT MAX(POSITION( '*' || col3 || '*' IN '*0100*0200*0300*0700*0600*0500*0400*'))
uno(#           FROM a a2 WHERE a.col2=a2.col2)
uno-# ;
 col1 |   col2   | col3
------+----------+------
    4 | 10000000 | 0400
   13 | 11000000 | 0600
   14 | 12000000 | 0300
(3 rows)

uno=#

-- 
UNO Shintaro, 宇野 信太郎
mailto:uno @ venus.dti.ne.jp
http://www.venus.dti.ne.jp/~uno/



pgsql-jp メーリングリストの案内