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