- ベストアンサー
「何々でなければ、この値」というような関数
「何々でなければ、この値」というような関数を探しています。 こんな感じです。 func(ZZZ, 'A', 'P') ZZZが'A'でなければ'P'を返す イメージ select ZZZ z, func(ZZZ, 'A', 'P') f from テーブル; z f - - A A NULL P P P B P なお、一つの関数である必要はなく、関数を組み合わせたり、入れ子にしたりするのはかまいません。 もしかすると、次のようにするとできるかもしれません。 NVL2 ( NULLIF('A', ZZZ), 'P', 'A' ) ただ、わかりにくい感じがするので。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>>> NVL2 ( NULLIF('A', ZZZ), 'P', 'A' ) >>> ただ、わかりにくい感じがするので。 慣れだと思うのでそれでよいでしょうが、 DECODE(ZZZ,'A','A','P') というのも考えられます。
その他の回答 (2)
- WIZDASH
- ベストアンサー率71% (5/7)
関数を使わない案として select IIF(ZZZ = 'A','','P') from テーブル; または、 select CASE~ IIFでは、ZZZ='A'が真の場合は''を返却 以外は'P'を返却します。 ※すみません、検証してないので、構文あってないかもしれません。関数使わなくていいなら、SELECT CASE、IIF関数で目的達成できるかもと思った次第です。
お礼
ご回答ありがとうございます
- masa6272
- ベストアンサー率66% (93/140)
CASE ZZZ WHEN 'A' THEN 'A' ELSE 'P' END というCASE式でいかがでしょう。 コーディングは長めですが、意味は明確です。 もちろん、1行に書いてもかまいません。
お礼
ご回答ありがとうございます
お礼
ご回答ありがとうございます。