- PR -

文字列のソート

1
投稿者投稿内容
もんた
常連さん
会議室デビュー日: 2005/05/19
投稿数: 20
投稿日時: 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が黒が赤より
優先して先頭に来るにはどうソートしたら
よろしいでしょうか?

よろしくお願いします。
ノラ
常連さん
会議室デビュー日: 2003/11/06
投稿数: 37
お住まい・勤務地: 東京都
投稿日時: 2008-04-16 14:49
お疲れ様です。
order by カラム1.カラム2,
case カラム3 when '赤' then 0 when '黒' then 1 end
のように指定するのはどうですか。

バージョンによってはdecode関数になりますが。
decode(カラム3,'赤',0,'黒',1)
みたいに。


 
ノラ
常連さん
会議室デビュー日: 2003/11/06
投稿数: 37
お住まい・勤務地: 東京都
投稿日時: 2008-04-16 14:52
赤黒の順番が逆だった。
case カラム3 when '黒' then 0 when '赤' then 1 end
decode(カラム3,'黒',0,'赤',1)
です。
ラララ
ベテラン
会議室デビュー日: 2004/02/04
投稿数: 66
投稿日時: 2008-04-16 16:23
ソート順をマスタテーブルに定義して、
マスタテーブルと結合の上、
マスタテーブルに定義されたソート順でソートする
って方法もありますね。
よっしー
大ベテラン
会議室デビュー日: 2007/05/17
投稿数: 143
投稿日時: 2008-04-16 18:06
引用:

もんたさんの書き込み (2008-04-16 14:23) より:
カラム3は、データとして赤又は黒して
データとして存在しません



よく意味がわからないのですが、、、

なんでみんな分かるの??
deanna
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 118
投稿日時: 2008-04-16 23:04
普通にorder by して、赤、黒の順になるなら
order by カラム1,カラム2,カラム3 desc
でいいんじゃない。
1

スキルアップ/キャリアアップ(JOB@IT)