DOBON.NET DOBON.NETプログラミング掲示板過去ログ

order by に詳しいかた!

環境/言語:[XP oracle9i]
分類:[その他]

次のような並び替えを1つのSQL文で行うにはどうしたらいいでしょうか?

商品   店舗コード
---------------------
あ    店舗1
い    店舗2
う    店舗2
え    店舗3
お    店舗4

店舗コードが店舗3のデータを先頭に、残りは店舗コードの昇順で並べたい。
以下のような結果を得たいのです。

商品   店舗コード
---------------------
え    店舗3
あ    店舗1
い    店舗2
う    店舗2
お    店舗4

SQLを2回実行すれば簡単に出来るのですが1回で済ましたいです。
何かいい方法があれば教えてください!
よろしくお願いします。
昇順なので、“店舗3”を抽出する店舗コード群より小さな値に変換した結果をソートすればよろしい。

example)
SELECT
  商品
, 店舗コード
FROM
  XXXXX
ORDER BY
  DECODE(店舗コード, '店舗3', '店', 店舗コード)

■No12295に返信(小ー田ーさんの記事)
> 次のような並び替えを1つのSQL文で行うにはどうしたらいいでしょうか?
> > 商品   店舗コード
> ---------------------
> あ    店舗1
> い    店舗2
> う    店舗2
> え    店舗3
> お    店舗4
> > 店舗コードが店舗3のデータを先頭に、残りは店舗コードの昇順で並べたい。
> 以下のような結果を得たいのです。
> > 商品   店舗コード
> ---------------------
> え    店舗3
> あ    店舗1
> い    店舗2
> う    店舗2
> お    店舗4
> > SQLを2回実行すれば簡単に出来るのですが1回で済ましたいです。
> 何かいい方法があれば教えてください!
> よろしくお願いします。
なるほど!
確かに出来ました。
そういう発想は出なかったです。。。

どうもありがとうございます!



■No12299に返信(ですぱちさんの記事)
> 昇順なので、“店舗3”を抽出する店舗コード群より小さな値に変換した結果をソートすればよろしい。
>
> example)
> SELECT
> 商品
> , 店舗コード
> FROM
> XXXXX
> ORDER BY
> DECODE(店舗コード, '店舗3', '店', 店舗コード)
>
> ■No12295に返信(小ー田ーさんの記事)
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板