2014-01-13 28 views
0

我读过一篇关于从oracle列重命名数据的文章。我遵循发布的查询之一,但是当我尝试自己的时候。我只是得到NULL值。请帮助我,我的DECODE QUERY中出现了什么问题。使用oracle解码

状态列的原始数据是“无应答”和“答案”

感谢。

这里是我的查询

select call_time, decode(status, 'no answer', 'hey', 'answer', 'yes'), channel 
FROM APP_ACCOUNT.CC_CALL; 

和这个输出是:

call_time decode(status, 'no answer', 'hey', 'answer', 'yes')  CHANNEL 
10/22/2013 NULL              DAHDI/i1/ 
11/05/2013 NULL              DAHDI/i2/ 

相反的:

call_time decode(status, 'no answer', 'hey', 'answer', 'yes')  CHANNEL 
10/22/2013 yes             DAHDI/i1/ 
11/05/2013 hey             DAHDI/i2/ 
+0

大概'status'不取的价值观''没有answer''或''answer''。 –

+0

状态栏的原始数据是'没有答案'和'答案' – user3172075

+0

我已经得到了答案:) – user3172075

回答

1

当使用解码,你应该永远使用默认值供应 解码(来自db的值,匹配1,替代值1,匹配2,替代值,.. .matching N,替代值n,缺省值)

,这样你就不必返回NULL如果所有比赛都未能