1 decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
2 【功能】根据条件返回相应值
3 【参数】c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或null
4 注:值1……n 不能为条件表达式,这种情况只能用case when then end解决
5
6 ·含义解释:
7   decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
8   该函数的含义如下:
9   IF 条件=值1 THEN
10   RETURN(翻译值1)
11   ELSIF 条件=值2 THEN
12   RETURN(翻译值2)
13   ......
14   ELSIF 条件=值n THEN
15   RETURN(翻译值n)
16   ELSE
17   RETURN(缺省值)
18   END IF
19
20 或:
21   when case 条件=值1 THEN
22   RETURN(翻译值1)
23   ElseCase 条件=值2 THEN
24   RETURN(翻译值2)
25   ......
26   ElseCase 条件=值n THEN
27   RETURN(翻译值n)
28   ELSE
29   RETURN(缺省值)
30   END
31
32
33 【示例】
34   ·使用方法:
35   1、比较大小
36   select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
37   sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
38   例如:
39   变量1=10,变量2=20
40   则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
41
42   2、表、视图结构转化
43   现有一个商品销售表sale,表结构为:
44   month    char(6)      --月份
45   sell    number(10,2)   --月销售金额  
46   现有数据为:
47   200001  1000
48   200002  1100
49   200003  1200
50   200004  1300
51   200005  1400
52   200006  1500
53   200007  1600
54   200101  1100
55   200202  1200
56   200301  1300
57
58   想要转化为以下结构的数据:
59   year   char(4)      --年份
60   month1  number(10,2)   --1月销售金额
61   month2  number(10,2)   --2月销售金额
62   month3  number(10,2)   --3月销售金额
63   month4  number(10,2)   --4月销售金额
64   month5  number(10,2)   --5月销售金额
65   month6  number(10,2)   --6月销售金额
66   month7  number(10,2)   --7月销售金额
67   month8  number(10,2)   --8月销售金额
68   month9  number(10,2)   --9月销售金额
69   month10  number(10,2)   --10月销售金额
70   month11  number(10,2)   --11月销售金额
71   month12  number(10,2)   --12月销售金额
72
73   结构转化的SQL语句为:
74
75   create or replace view
76   v_sale(year,month1,month2,month3,month4,month5,month6,
77   month7,month8,month9,month10,month11,month12)
78   as
79   select
80   substrb(month,1,4),
81   sum(decode(substrb(month,5,2),'01',sell,0)),
82   sum(decode(substrb(month,5,2),'02',sell,0)),
83   sum(decode(substrb(month,5,2),'03',sell,0)),
84   sum(decode(substrb(month,5,2),'04',sell,0)),
85   sum(decode(substrb(month,5,2),'05',sell,0)),
86   sum(decode(substrb(month,5,2),'06',sell,0)),
87   sum(decode(substrb(month,5,2),'07',sell,0)),
88   sum(decode(substrb(month,5,2),'08',sell,0)),
89   sum(decode(substrb(month,5,2),'09',sell,0)),
90   sum(decode(substrb(month,5,2),'10',sell,0)),
91   sum(decode(substrb(month,5,2),'11',sell,0)),
92   sum(decode(substrb(month,5,2),'12',sell,0))
93   from sale
94   group by substrb(month,1,4);
95

根据条件返回相应值 decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)的更多相关文章

  1. decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

    decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETU ...

  2. oracle函数 decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)

    [功能]根据条件返回相应值 [参数]c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或null 注:值1……n 不能为条件表达式,这种情况只能用case when then end解 ...

  3. [datatable]关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法

    -- :09关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法 在实际编程工程中,常常遇到这样的情况:DataTable并不 ...

  4. 在DataTable中执行DataTable.Select("条件")返回DataTable;

    转:http://blog.csdn.net/hcf_force/article/details/7779062 1.在DataTable中执行DataTable.Select("条件&qu ...

  5. linq 根据指定条件返回集合中不重复的元素

    原理:先查询出数据,根据指定值分组,然后取第一条映射 1.第一种方法 string sql = string.Format("select*from PoliceLogistcs); db. ...

  6. EXCEL应用:高级筛选里的条件或和与的条件怎么写 例:不包含,包含等

    ============================================================= a列包含b列,在c列中显示b列信息, =INDEX(B:B,MIN(IF(I ...

  7. pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)

    pandas学习(常用数学统计方法总结.读取或保存数据.缺省值和异常值处理) 目录 常用数学统计方法总结 读取或保存数据 缺省值和异常值处理 常用数学统计方法总结 count 计算非NA值的数量 de ...

  8. if语句 条件测试 shell编程之条件语句

    shell 编程之条件语句一.条件测试  ① test命令 测试  ② 文件测试  ③ 整数值比较  ④ 字符串比较  ⑤ 逻辑测试二.if语句的结构  单分支结构  双分支结构  多分支结构三.ca ...

  9. C++:利用如下公式,编写函数计算∏的值,直到最后一项的绝对值小于e,主程序接收从键盘输入的e,输出∏的值(保留5位小数)。 ∏/4 = 1-1/3+1/5-1/7...

    利用如下公式,编写函数计算∏的值,直到最后一项的绝对值小于e,主程序接收从键盘输入的e,输出∏的值(保留5位小数). ∏/4 = 1-1/3+1/5-1/7... #include <iostr ...

随机推荐

  1. CentOS/Linux下设置IP地址

    CentOS/Linux下设置IP地址 1:临时修改:1.1:修改IP地址# ifconfig eth0 192.168.100.100 1.2:修改网关地址# route add default g ...

  2. Python数据挖掘课程

    [Python数据挖掘课程]一.安装Python及爬虫入门介绍[Python数据挖掘课程]二.Kmeans聚类数据分析及Anaconda介绍[Python数据挖掘课程]三.Kmeans聚类代码实现.作 ...

  3. eclipse安装Spring Tool Suite 各个版本的方法

    有时候spring官网上找不到与我们当前eclipse对应的spring插件,用URL的方式安装费时又费力,那么如何下载对应的spring插件呢? 先到插件页面,然后点击“原先的插件版本” 显示出这个 ...

  4. EOJ2018.10 月赛(B 数学+思维题)

    传送门:Problem B https://www.cnblogs.com/violet-acmer/p/9739115.html 题意: 找到最小的包含子序列a的序列s,并且序列s是 p -莫干山序 ...

  5. Top sort 双队列

    #include<iostream> #include<vector> #include<queue> using namespace std; ]; int ma ...

  6. 函数和常用模块【day05】:文件目录开发规范(七)

    本节内容 1.背景 2.设计目录结构的好处 3.关于readme的内容 4.关于requirements.txt和setup.py 5.关于配置文件的使用方法 一.背景 "设计项目目录结构& ...

  7. EasyUI的onLoadSuccess方法

    EasyUI加载表单的时候,对表单内行数据进行判断,可以赋颜色,也可以进行其他操作 onLoadSuccess:function(data) { for(var i=0;i<data.rows. ...

  8. IDEA中阿里JAVA代码规范插件(P3C)的安装及使用

    JAVA代码规范插件(P3C)是阿里巴巴2017年10月14日在杭州云栖大会上首发的,使之前的阿里巴巴JAVA开发手册正式以插件形式公开走向业界.插件的相关信息及安装包都可以在GitHub(https ...

  9. Weblogic常见故障常:JDBC Connection Pools【转】

    WebLogic Server中数据库连接池是一个经常出问题的地方,总结一下出问题的原因和解决办法. 一.数据库连接泄漏 此类问题一般都是由于开发人员没有正确关闭数据库连接造成的.比如使用完Conne ...

  10. luogu 1972 小H的项链 莫队

    1.莫队算法 TLE 80 #include<bits/stdc++.h> #define rep(i,x,y) for(register int i=x;i<=y;i++) usi ...