Oracle SQL Desktop DECODE函数

时间:2015-12-21 16:54:53

标签: sql oracle11g decode

我需要创建一个DECODE函数,如果数字大于10 000则返回GOOD,如果小于10 000则返回BAD。我知道我可以使用CASE,但我的老师希望我们用DECODE来完成。

3 个答案:

答案 0 :(得分:2)

这是“旧”Oracle中的常见问题。您可以使用sign()功能:

select decode(sign(number - 1000), 1, 'GOOD', -1, 'BAD', 0, 'EQUAL', 'Huh???')

CASE更明智。

我只是回答,因为评论表明这要么真的很难,要么不可能。

答案 1 :(得分:0)

我不知道SQL Desktop是什么 - 谷歌搜索只返回此页面。

如果您正在谈论Oracle函数DECODE()并且您的问题被正确询问,那么您的教授的意图是指出这个问题的答案基本上是不可能的,并且您真的想要使用CASE语句。

答案 2 :(得分:0)

以下是您想要做的一般概念。您可以根据自己的作业进行调整。

select records 
, decode ((records - 5), 0,  'five', 'ten') result
from (
select 5 records 
from dual
union 
select 10 records 
from dual
) x