我思故我强

oracle里的判断函数decode

一个类似于判断的函数.它就是DECODE.

先来看看它的用法 decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)

它的意思也就是这样

IF 条件=值1 THEN
    RETURN(翻译值1)
ELSIF 条件=值2 THEN
    RETURN(翻译值2)
    ......
ELSIF 条件=值n THEN
    RETURN(翻译值n)

ELSE
    RETURN(缺省值)
END IF

那这个有什么用呢,用处可就大了.比方说 select count(*) from news

我们统计NEWS中的新闻条数,如果大于1000 的话就提示大于限制了.

这样 select decode(count(*),1000,'己经超出限制',limit)

这样limit 输出的就为'己经超出限制'这个字符串.

我们还可以用这个判断大小

a=10,变量b=20

则sign(a-b)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。

sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1

decode(sign(a-b),-1,a,b)

如果a<b的话,就输出A的值


posted on 2007-07-28 13:15 李云泽 阅读(11913) 评论(2)  编辑  收藏 所属分类: Oracle

评论

# re: oracle里的判断函数decode 2008-09-28 15:15 huangyq

看了好几个介绍 decode()这个函数介绍哦
还是在你这看懂了 ,谢谢!  回复  更多评论   

# re: oracle里的判断函数decode 2008-11-28 16:20 sweety

谢谢,很有用!  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: