プログラミング

【Oracle】SQLのCase式の条件でLikeをつかう

※はてブより引っ越しました。

プログラムを組んでいるときに一つのSQLで済ませたいときってあるじゃないですか。

そこでCase式について考えているときにふとLikeって使えるの?と疑問に思ったので調べてみました!

Case式でLikeの条件は使えるのか




OracleのCase式について調べてみると
www.shift-the-oracle.com

使えるやん!!

「IS NULL」や「IN」、「Like」も記述可能となってます。

それを踏まえて以下のようなコードを考えてみました!

CASE  
 WHEN  CODE LIKE 'A%' THEN 'Aコード'
 WHEN  CODE LIKE 'S%' or SAGYOU_CODE LIKE 'E%' THEN 'SEコード' 
 WHEN  CODE LIKE 'L%' THEN 'Lコード'
 WHEN SUBSTR(CODE,5,1) = 'K' or SUBSTR(CODE,5,1) = 'M' THEN 'KMコード'
 WHEN BUNYA_CODE = '1' THEN '1分野 '
 WHEN BUNYA_CODE = '2' AND  (SELECT A,Code FROM ATable  A WHERE A.JUCHUNO = SUBSTR(A.CODE,0,8)) < 35 THEN '個別分野コード' 
 WHEN BUNYA_CODE = '2' AND  (SELECT A,Code FROM ATable  A WHERE A.JUCHUNO = SUBSTR(A.CODE,0,8)) > 36 THEN '専門分野コード' 
 ELSE 'その他'
END as コード区分

Likeどころかサブクエリまで条件に入れられるなんてCase式凄すぎません?

Thenの後ろにもサブクエリをいれることができます。
そもそもCase式が使えるのはOracle 9以降みたいですね。

まとめ

SEの友達に話したところ「そもそもそれをやるならSQLの設計を考え直したほうがいい」と言われました。

ぐぅの音もでませんね♪ 

RECOMMEND

1

新卒で入社したけど『もう仕事を辞めたい』『我慢できない』という方に向けて。新卒入社でカフェのフロアスタッフとしてして働いたけれど、約1年で退職した私からアドバイスです。心がだめになるまで続ける必要なんてありません。

2

女性はライフステージによって休職や転職しなければいけないときがありますよね。
そこでこの記事では女性の転職に有利な資格をまとめてみました。
一生職に困らない、転職に有利な資格とはなにかご覧ください。

3

「今日は会社に行く気がしない・・。」「たまには会社をさぼりたい・・。」なんてことありませんか?本記事では、実際に私の周りで使われていた欠勤理由をご紹介します。今から使える欠勤理由です。本当に仕事に行きたくないときなど活用できると思うので、ぜひ読んでみてください。

-プログラミング

Copyright© Job search info , 2020 All Rights Reserved.