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

chuuken kenkou ken_ken_1962 @ hotmail.com
2007年 8月 22日 (水) 09:30:42 JST


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