登录模块加载中...
会员投稿 投稿指南 今天是:
打印本页 | 关闭窗口 | 双击滚屏 您的位置首页>>网页制作学习园地>>数据库类>>ORACLE>>oracle中Decode()函数使用说明
oracle中Decode()函数使用说明
来源: ‖ 作者: ‖ 点击: ‖ 时间:12-10-16 15:57:45 ‖ 【 】‖ 我要投稿
 oracle中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

    使用方法:

    1、比较大小

    select decode(sign(变量1-变量2), -1, 变量1, 变量2) from dual;  --取较小值

    www.2cto.com

    select decode(sign(变量1-变量2), 1或0, 变量1, 变量2) from dual;  --取较大值

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

    例如:

    变量1=10,变量2=20

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

    2、表、视图结构转化

    现有一个商品销售表sale,表结构为:

    month    char(6)      --月份

    sell    number(10,2)   --月销售金额

    现有数据为:

    200001  1000

    200002  1100

    200003  1200

    200004  1300

    200005  1400

    200006  1500

    200007  1600

    200101  1100

    200202  1200

    200301  1300

    www.2cto.com

    想要转化为以下结构的数据:

    year   char(4)      --年份

    month1  number(10,2)   --1月销售金额

    month2  number(10,2)   --2月销售金额

    month3  number(10,2)   --3月销售金额

    month4  number(10,2)   --4月销售金额

    month5  number(10,2)   --5月销售金额

    month6  number(10,2)   --6月销售金额

    month7  number(10,2)   --7月销售金额

    month8  number(10,2)   --8月销售金额

    month9  number(10,2)   --9月销售金额

    month10  number(10,2)   --10月销售金额

    month11  number(10,2)   --11月销售金额

    month12  number(10,2)   --12月销售金额

    结构转化的SQL语句为:

    create or replace view v_sale(year,month1,month2,month3,

    month4,month5,month6,month7,month8,month9,month10,month11,month12)

    as

    select

    substrb(month,1,4),

    sum(decode(substrb(month,5,2),'01',sell,0)),

    sum

|<< << < 1 2 > >> >>|
加入收藏:  加入收藏夹  | 发送给好友:  发送给好友
责任编辑:admin
相关文章列表
请文明参与讨论,禁止漫骂攻击。  
网友评论