[Rumble-jp-dev] SQLのソートについて

Back to archive index

Naoki Kurosawa naoki_kuros****@ybb*****
2003年 4月 18日 (金) 23:34:07 JST


黒澤です。

L> 複数のカラムがあって、ターゲットのカラムでソートする場合で、
L> そのカラムが同じ値だった場合に、次のカラムの大小で
L> ソートしたいのですがうまく出来ません。
L> 
L> order by aaa desc, bbb desc
L> っていう記述じゃダメなんでしょうか?

あってますよ。

create table test (
  aaa int null,
  bbb int not null,
  primary key (bbb)
);

というテーブルを作って、
insert into test values (5,0),(1,3),(1,2),(1,1);
で値を代入し、まず
select * from test;
とすると、
+-----+-----+
| aaa | bbb |
+-----+-----+
|   1 |   1 |
|   1 |   2 |
|   1 |   3 |
|   5 |   0 |
+-----+-----+
となります。で、
select * from test order by aaa desc, bbb desc;
すると、
+-----+-----+
| aaa | bbb |
+-----+-----+
|   5 |   0 |
|   1 |   3 |
|   1 |   2 |
|   1 |   1 |
+-----+-----+
と出ます。


もしかして、NULL値を含んだカラムをソートキーに使おうとしてますか?
ちょっとうまい例が思いつきませんが、
NULL値を含むカラムをソートキーに使おうとするとうまく並べられないときが
あります。

-- 
Naoki Kurosawa <naoki_kuros****@ybb*****>





Rumble-jp-dev メーリングリストの案内
Back to archive index