oracle decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
来源:互联网 发布:日进斗金软件下载 编辑:程序博客网 时间:2024/04/30 14:36
decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)【功能】根据条件返回相应值【参数】c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或null注:值1……n 不能为条件表达式,这种情况只能用case when then end解决·含义解释: 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 或: when case 条件=值1 THEN RETURN(翻译值1) ElseCase 条件=值2 THEN RETURN(翻译值2) ...... ElseCase 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END【示例】 ·使用方法: 1、比较大小 select decode(sign(变量1-变量2),-1,变量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 想要转化为以下结构的数据: 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(decode(substrb(month,5,2),'02',sell,0)), sum(decode(substrb(month,5,2),'03',sell,0)), sum(decode(substrb(month,5,2),'04',sell,0)), sum(decode(substrb(month,5,2),'05',sell,0)), sum(decode(substrb(month,5,2),'06',sell,0)), sum(decode(substrb(month,5,2),'07',sell,0)), sum(decode(substrb(month,5,2),'08',sell,0)), sum(decode(substrb(month,5,2),'09',sell,0)), sum(decode(substrb(month,5,2),'10',sell,0)), sum(decode(substrb(month,5,2),'11',sell,0)), sum(decode(substrb(month,5,2),'12',sell,0)) from sale group by substrb(month,1,4);
- oracle decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
- decodec sign(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
- decode用法-翻译值
- 【sql】decode函数 翻译值
- 【翻译整理】Web API 2 返回值
- GetQueuedCompletionStatus的返回值(翻译自msdn)
- OpenGL教程翻译 第九课 插值
- memcached预设值常量以及resultmessage翻译
- Android <service>属性值含义翻译
- ABP官方文档翻译 3.2 值对象
- 翻译2
- 翻译1
- 2-3.输入n,计算1! + 2! + 。。。。 N!的值
- 3.输入n,计算1! + 2! + 。。。。 N!的值
- 计算1!+2!+3!+...n!的值,n由键盘输入
- 输入n ,计算 1!+2!+...+n! 的值
- ⌊N/1⌋,⌊N/2⌋,...⌊N/N⌋的值的集合的分析
- 2-1.输入n,输出1,2,3,。。。N的值(n >= 1);
- Debug中cx的值
- 基于android手机的3G+GPS远程控制模型车工程-android手机编程3-创建控制服务
- stl中的Map
- SQL查询及删除重复记录的方法
- ORACLE SQL性能优化系列 (八)
- oracle decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
- 使用Android自带Gallery组件实现CoverFlow
- DB2 Express-C V9.5和V9.1的许可协议的对比
- Linux内核学习笔记——系统启动
- Python基本语法
- asp.net的一些基本概念
- Kinect for windwos sdk 环境搭建
- Python学习笔记(1)--数据结构
- Windows串口编程基础(推荐资料)