[pgsql-jp: 38677] Re: SELECT文、NULL やスペースを含む列でのソートについて

藤澤 qsecofr1 @ hotmail.com
2007年 8月 22日 (水) 09:37:08 JST


指摘頂いた構文で、ひっかかっていたところは解決できて
いたので。。。
ただ、記述として、忠犬さんに指摘頂いたものの方が、
分かりやすいので、そちらを使おうと思っています。
# TRUE と FALSE の大小関係がピンとこなくて。


/藤澤


On Wed, 22 Aug 2007 09:45:15 +0900 (JST)
"chuuken kenkou" <ken_ken_1962 @ hotmail.com> wrote:

> 
> c2でソートしていませんが、いいのですか?
> 
> -- 追加
> INSERT INTO t1 VALUES ('10', 'ZZZZZZZZZZ');
> INSERT INTO t1 VALUES ('16', 'A');
> 
> 上記のようなデータがあった場合、nullや''(長さ0の文字)は最後尾に持っていけ
> ますが、
> それ以外のc2の値ではソートされませんが?
> 
> 質問者さんのやりたいことを実現するには、下記のように、c2もorder byに入れる必
> 要が
> あると思いますけど?
> 
> SELECT
>  c1,
>  c2
> FROM t1
> ORDER BY c2 IS NULL OR TRIM(c2) = '', c2, c1;
> 
> 
> 
> 
> >ありがとうございます。
> >意図した通りに並びました。
> >/藤澤
> >
> >
> >On Tue, 21 Aug 2007 21:20:46 +0900 (JST)
> >"渋谷泰宏" <yasuhiro_shibutani @ ybb.ne.jp> wrote:
> >
> > > 渋谷です。
> > >
> > > ORDER句に式を書くといけると思いますよ。
> > >
> > > SELECT
> > >  c1,
> > >  c2
> > > FROM t1
> > > ORDER BY c2 IS NULL OR TRIM(c2) = '', c1;
> > >
> 
> > > >     -------------------------------------------------------
> > > >     SELECT
> > > >       c1,
> > > >       c2,
> > > >       CASE
> > > >         WHEN c2 IS NULL OR TRIM(c2) = '' THEN 'ZZZZ'
> > > >         ELSE c2
> > > >       END  AS c3
> > > >     FROM t1
> > > >     ORDER BY c3, c1;
> > > >     -------------------------------------------------------
> 
> _________________________________________________________________
> インターネットを見るなら最新のMSN版IE7で!ダウンロード無料 
> http://promotion.msn.co.jp/ie7/ 






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