■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とかも可能かも。
|
|