新着情報

Home > 開発者ブログ > intra-mart > ORDER BY句のCASE式

ORDER BY句のCASE式

 

CASE式

 

 

 

 

 

こんにちは。自称エリート(見習い)です。

 

先日SQL(Microsoft SQL Server)を書き換える保守案件に対応していたところ、

ORDER BY句でCASE式(条件分岐)を記述しているSQL文を発見しました。

 

ちょうどソート順を変更しなければならない内容だったので、
CASE式の復習含めてORDER BY句でのCASE式の使い方を学んでみました。

 


CASE式は単純CASE式と検索CASE式に分類することができます。
例えば以下のような形になります。

 

単純CASE式

CASE position
WHEN "社長" THEN 1
WHEN "部長" THEN 2
WHEN "社員" THEN 3
ELSE 100
END


検索CASE式

CASE
WHEN potision = "社長" THEN 1
WHEN potision = "部長" THEN 2
WHEN potision = "社員" THEN 3
ELSE 100
END

 

社長ならば値1を、社長でも部長でも社員でもなければ値100を充てます。
ELSEは書いておいた方がいいでしょう。

 


このCASE式ですが、ORDER BY句で使う場面として以下のような場面が考えられます。
・役職を上位から並べたいが先に社員一覧を表示させたい。

 

結構例えが下手ですがまぁあるかもしれないので気にしないでください(笑)
上記のような条件を満たすSQL文の書き方がこちらになります。

 

SELECT * FROM employee
ORDER BY
CASE potision
WHEN "社員" THEN 1
WHEN "社長" THEN 2
ELSE 3
END

上記のように書くと、
社員(1)→社長(2)→部長(3)の順にソートされた結果が返ってきます。

 


今回は以上になりますが、
ORDER BYに関連する内容は以前にも取り上げたように(LIMIT句について)、
使い道はたくさんあるなと感じました。

 

引き続き自学も兼ねて気付きがあればアップしていきたいと思います。

2017年07月13日(木)

テレマーケティングシステムsakuraトライアル

コールセンターシステム sakuraCTI

資料請求

お問合わせ

コラム

用語集

開発者ブログ

イントラマート

Sakuraテレマーケティングシステム

 

 

営業リスト

インフラソリューションのご案内

導入事例

テレアポノウハウ本プレゼントキャンペーン

認証マーク

アースリンクは
プライバシーマークを
取得しています。

プライバシーポリシー


SSLとは?

当サイトでは、実在性の証明とプライバシー 保護のためSSLサーバ証明書を使用しSSL 暗号化通信を実現しています。

このページの先頭へ