- - PR -
文字列のソート
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-04-16 14:23
オラクル・SQL初心者の質問です
以下のようにカラムがあるとします。 カラム3は、データとして赤又は黒して データとして存在しません カラム1 カラム2 カラム3 1 20080410 赤 2 20080410 黒 3 20080415 赤 4 20080415 黒 を3つのフィールでソートしたとき カラム1 カラム2 カラム3 1 20080410 黒 2 20080410 赤 3 20080415 黒 4 20080415 赤 ようにカラム3が黒が赤より 優先して先頭に来るにはどうソートしたら よろしいでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2008-04-16 14:49
お疲れ様です。
order by カラム1.カラム2, case カラム3 when '赤' then 0 when '黒' then 1 end のように指定するのはどうですか。 バージョンによってはdecode関数になりますが。 decode(カラム3,'赤',0,'黒',1) みたいに。 | ||||
|
投稿日時: 2008-04-16 14:52
赤黒の順番が逆だった。
case カラム3 when '黒' then 0 when '赤' then 1 end decode(カラム3,'黒',0,'赤',1) です。 | ||||
|
投稿日時: 2008-04-16 16:23
ソート順をマスタテーブルに定義して、
マスタテーブルと結合の上、 マスタテーブルに定義されたソート順でソートする って方法もありますね。 | ||||
|
投稿日時: 2008-04-16 18:06
よく意味がわからないのですが、、、 なんでみんな分かるの?? | ||||
|
投稿日時: 2008-04-16 23:04
普通にorder by して、赤、黒の順になるなら
order by カラム1,カラム2,カラム3 desc でいいんじゃない。 |
1