重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こういうソートがしたい。

ソート前:
article_id | disp_no | write_d
------------+---------+---------------------
1 | 1000 | 2007-06-05 22:33:00
2 | 1001 | 2007-06-06 11:09:00
3 | 2000 | 2007-06-06 11:18:00
4 | 2001 | 2007-06-06 11:18:00
5 | 3000 | 2007-06-06 11:18:00
(5 rows)

ソート後:
article_id | disp_no | write_d
------------+---------+---------------------
3 | 2000 | 2007-06-06 11:18:00
4 | 2001 | 2007-06-06 11:18:00
5 | 3000 | 2007-06-06 11:18:00
1 | 1000 | 2007-06-05 22:33:00
2 | 1001 | 2007-06-06 11:09:00
(5 rows)
できるのかな?

A 回答 (5件)

どういうルールで並べるのか、具体的に示してください。

質問者さんの頭の中にあるルールは、他人には分かりませんし、SQLの提示のしようがありません。

件数が少なく、データのパターンが明確なら、case式等でソート用に定数を与えるといった方法もあるでしょう。
データに幾つかの群があるなら、その群を別々に検索して、unionでくっつけるといった方法もあるでしょう。
    • good
    • 0

SQL SEEVER で試しましたが・・・



SELECT * FROM TABLE1 ORDER BY WRITE_D DESC, DISP_no asc;

|_3|__2,000|2007/06/06 11:18:00|
|_4|__2,001|2007/06/06 11:18:00|
|_5|__3,000|2007/06/06 11:18:00|
|_2|__1,001|2007/06/06 11:09:00|
|_1|__1,000|2007/06/05 22:33:00|

という結果を得ました。
つまり、4番目と5番目は逆にしかなりませんね。

|_3|__2,000|2007/06/06 11:18:00|
|_4|__2,001|2007/06/06 11:18:00|
|_5|__3,000|2007/06/06 11:18:00|
|_1|__1,000|2007/06/06 11:09:00|
|_2|__1,001|2007/06/06 11:09:00|

こういうテストデータならば話は別です。
    • good
    • 0

できますが、



ソート後:
article_id | disp_no | write_d
------------+---------+---------------------
3 | 2000 | 2007-06-06 11:18:00
4 | 2001 | 2007-06-06 11:18:00
5 | 3000 | 2007-06-06 11:18:00
2 | 1001 | 2007-06-06 11:09:00
1 | 1000 | 2007-06-05 22:33:00

こうじゃないと、「order by write_d desc ,disp_no asc」には
ならないと思いますよ。

まず、write_d で desc(降順)になり、その後、write_d が
同じ値の中で、disp_no を asc(昇順)にするわけですから。

質問の内容をそのままとると、#1さんのように
無理と答えるしかありません。

この回答への補足

アドバイス、ありがとうございます。

やっぱり、

article_id | disp_no | write_d
------------+---------+---------------------
3 | 2000 | 2007-06-06 11:18:00
4 | 2001 | 2007-06-06 11:18:00
5 | 3000 | 2007-06-06 11:18:00
2 | 1001 | 2007-06-06 11:09:00
1 | 1000 | 2007-06-05 22:33:00

こうなってしまいますか?
他の方法、考えるしかないですかね。(涙)

補足日時:2007/06/06 16:09
    • good
    • 0

できます。



ascは無くてもよかったと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。

でも、なんか出来ないみたいです。(涙)

お礼日時:2007/06/06 16:10

何の順にソートされたのかわかりません。

この回答への補足

order by write_d desc ,disp_no asc;
という形で、ソートは出来ないでしょうか?

補足日時:2007/06/06 15:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す