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