C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 101 を表示中)
■59853 / )  Re[1]: Oracle11gR2環境でのDECODE関数について
□投稿者/ shu (769回)-(2011/06/09(Thu) 11:32:36)
2011/06/09(Thu) 11:33:11 編集(投稿者)

No59850 (M.U さん) に返信

> 原因のわかる方がいらっしゃれば教えてください。
環境がないので分かりませんが、Decodeの戻り型が3番目の引数で決まるからではないでしょうか?


>
> ちなみに以下のいずれかの記述に修正しようと考えていますが、
> 修正方法に問題がある、もしくはこの修正方法がよいなどありましたら併せて教えてください。
>  1.NVL2関数を使用する
>     SELECT NVL2(Column1,Column2,NULL) FROM TABLE_1
>  2.TO_CHAR関数を使用する
>     SELECT DECODE(Column1,NULL,TO_CHAR(NULL),Column2) FROM TABLE_1
>  3.CASE式を使用する
>     SELECT CASE WHEN Column1 IS NULL THEN NULL ELSE Column2 END FROM TABLE_1
1.がすっきりしてて良いように思います。

Column1がNullのときの判断でColumn1=Column1とならないのであれば
DECODE(Column1,Column1,Column2,Null)
ということも出来るかも?

今回は違いますが、
Column1,Column2が数値ならColumn2+Column1-Column1とかも可能かも。



返信 編集キー/


管理者用

- Child Tree -