- 締切済み
降順と昇順が混じったソートできるかな?
こういうソートがしたい。 ソート前: 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) できるのかな?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
どういうルールで並べるのか、具体的に示してください。質問者さんの頭の中にあるルールは、他人には分かりませんし、SQLの提示のしようがありません。 件数が少なく、データのパターンが明確なら、case式等でソート用に定数を与えるといった方法もあるでしょう。 データに幾つかの群があるなら、その群を別々に検索して、unionでくっつけるといった方法もあるでしょう。
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| こういうテストデータならば話は別です。
- nobadymen
- ベストアンサー率12% (12/100)
できますが、 ソート後: 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さんのように 無理と答えるしかありません。
- TA-HT81S
- ベストアンサー率39% (72/184)
できます。 ascは無くてもよかったと思います。
お礼
ありがとうございます。 でも、なんか出来ないみたいです。(涙)
- TA-HT81S
- ベストアンサー率39% (72/184)
何の順にソートされたのかわかりません。
補足
order by write_d desc ,disp_no asc; という形で、ソートは出来ないでしょうか?
補足
アドバイス、ありがとうございます。 やっぱり、 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 こうなってしまいますか? 他の方法、考えるしかないですかね。(涙)