質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

Q&A

解決済

1回答

3583閲覧

Where句でDECODEを左辺で使用する場合について

seita1224

総合スコア14

Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

0グッド

0クリップ

投稿2018/07/23 01:57

編集2018/07/23 02:29

ある帳票を出力するようなソースコードを読んでいると
SQLのWHERE句で

java

1if(入力された値が0の場合){ 2 DECODE(KUBUN,'0','0','1') = 0 3}else if(入力された値が1の場合){ 4 DECODE(KUBUN,'0','0','1') = 1 5}

といったソースを見つけました。
「KUBUN」では0~5の値が入っているのでこのソースでは
0の場合は0、それ以外は1といったことを表現しようとしているとは思うのですが

java

1 KUBUN = '入力された値'

といった風に表現したほうが良いと思ったのですが
このような形にする理由としてはどういったことが考えられるでしょうか?

かなり古いソースコードで
これを作成した方がもうおらず困っております。
どなたかわかる方がいらっしゃったらお願い致します。

補足

KUBUNの内容
0,4,5の値については他のどの区分とも似つかないため独立して表現している
1~3については同じような区分のためひとまとめに表現している
例)
野菜 0
牛肉 1
豚肉 2
鶏肉 3
果物 4
ジュース 5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2018/07/23 02:10

「「KUBUN」では0~5の値が入っている」のなら、提示のコードは全体ではないはず。条件分岐の全体のコードを提示して下さい。
seita1224

2018/07/23 02:30

条件分岐に関してはこれだけになっていて、今から4、5の条件をつけたそうとしているところです。
guest

回答1

0

ベストアンサー

現状の条件は、
・入力された値が0の場合、KUBUN=0のものを抽出
・入力された値が1の場合、KUBUN=0以外のものを抽出
となっています。

・KUBUN = '入力された値'
とするなら、仕様が変わるということになります。

投稿2018/07/23 02:39

編集2018/07/23 02:40
sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問