【Oracle】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以降みたいですね。