• 締切済み

降順と昇順が混じったソートできるかな?

こういうソートがしたい。 ソート前: 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) できるのかな?

みんなの回答

回答No.5

どういうルールで並べるのか、具体的に示してください。質問者さんの頭の中にあるルールは、他人には分かりませんし、SQLの提示のしようがありません。 件数が少なく、データのパターンが明確なら、case式等でソート用に定数を与えるといった方法もあるでしょう。 データに幾つかの群があるなら、その群を別々に検索して、unionでくっつけるといった方法もあるでしょう。

noname#140971
noname#140971
回答No.4

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)
回答No.3

できますが、 ソート後: 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さんのように 無理と答えるしかありません。

besei21
質問者

補足

アドバイス、ありがとうございます。 やっぱり、 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 こうなってしまいますか? 他の方法、考えるしかないですかね。(涙)

  • TA-HT81S
  • ベストアンサー率39% (72/184)
回答No.2

できます。 ascは無くてもよかったと思います。

besei21
質問者

お礼

ありがとうございます。 でも、なんか出来ないみたいです。(涙)

  • TA-HT81S
  • ベストアンサー率39% (72/184)
回答No.1

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

besei21
質問者

補足

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

関連するQ&A