SELECT DECODE语句:更改空值和非空值

时间:2014-01-07 04:21:33

标签: select null decode

我花了好几个小时试图解决这个问题,但不断收到错误!

基本上我想保留所有字段值,除了更改空值和'0'值。我想将“0”更改为“无费用”,并将所有空值更改为“不适用”。

我最接近的是

SELECT DECODE(NVL(TO_CHAR(PL.oper),'No'),'0','No Charge','No','Not Applicable',PL.oper)

使用此代码时没有出现错误。 0都变为'No Charge',但Null值由于某种原因保持不变。 由于我的要求非常具体,我在这个网站或Google上找不到这样的内容。如果有人能帮助我,我真的很感激!!!!

谢谢

1 个答案:

答案 0 :(得分:0)

在这种情况下,无论如何都要尝试使用case语句。

SELECT id, 
       field,
       CASE NVL(field, 'No')
       WHEN '0' THEN 'No Charge'
       WHEN 'No' THEN 'Not applicable'
       ELSE 'catch all result do this'
       END
FROM   xx_test

link