- 浏览: 794800 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (413)
- 项目 (12)
- 统计分析 (3)
- java (7)
- jquery (15)
- oracle (33)
- 面试题 (8)
- 排序算法 (3)
- 蛇形矩阵算法 (3)
- 字符串 (1)
- ICU分析插件 (1)
- html5 (1)
- Ubuntu (4)
- Linux (4)
- memcache (2)
- myeclipse (3)
- hadoop (18)
- hbase (14)
- hive (7)
- zookeeper (2)
- pig (0)
- mysql (11)
- Redis (8)
- MongoDB (7)
- Cassandra (0)
- Neo4j (0)
- springMVC (3)
- ibatis (1)
- mahout (0)
- Highcharts (1)
- maven (7)
- 生活随笔 (6)
- 存储过程 (4)
- mybatis (3)
- bootstrap (19)
- 工作中遇到的问题 (23)
- node.js (3)
- web前段 (6)
- AngularJS (5)
- GIT (2)
- nginx (5)
- hive,sqoop (1)
- 高并发 (2)
- 算法 (3)
- 工具类 (2)
- ckeditor (1)
- java代码自动生成 (3)
- ueditor (6)
- svn (4)
- easyui (3)
- 数据挖掘 (4)
- ligerUi (1)
- fullcalendar (1)
- 微信公众号开发 (1)
- tomcat (2)
- 面试 (7)
- 数据库性能优化 (2)
- R语言 (3)
- R (6)
- ylcf (39)
- CentOS (13)
- docker (28)
- Spring Boot (10)
- Nexus (1)
- thymeleaf (2)
- nodejs (2)
- swagger (1)
- Jenkins (1)
- SpringCloud (9)
- vue (1)
- springClould问题汇总 (3)
- layui (1)
最新评论
-
greatwqs:
在前置请求页面返回token, 在提交接口中验证token, ...
Spring MVC 用拦截器+token防止重复提交 -
zhukewen_java:
这种方法的缺陷在于如果请求了两个save=true的方法,后面 ...
Spring MVC 用拦截器+token防止重复提交 -
byrgl5:
请问如果重复提交了三次呢?能避免吗?
Spring MVC 用拦截器+token防止重复提交 -
381895649:
是不是有病?
服务器被如下ip攻击,如何根据ip超找攻击来源 -
greatwqs:
最棒的10款MySQL管理工具
·含义解释: 结构转化的SQL语句为:
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; --取较小值
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月销售金额
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()函数和CASE语句的比较。 首先,举2个简单的例子,简单对比一下这2者的区别。 1.CASE语句:
SELECT CASE SIGN(5 - 5) WHEN 1 THEN 'Is Positive' WHEN -1 THEN 'Is Negative' ELSE 'Is Zero' END FROM DUAL;
后台实现:
if (SIGN(5 – 5) = 1) { 'Is Positive'; } else if (SIGN(5 – 5) = 2 ) { 'Is Negative'; }else { ‘Is Zero’ }
2. Decode函数:
SELECT DECODE(SIGN(5 – 5), 1, 'Is Positive', -1, 'Is Negative', ‘Is Zero’) FROM DUAL
后台实现:
switch ( SIGN(5 – 5) ) { case 1 : 'Is Positive'; break; case 2 : 'Is Negative'; break; default : ‘Is Zero’ }
在上面的例子中,2者似乎都可以实现。但是,在碰到非凡的问题时Decode()要实现起来就相当复杂了。
例如:
SELECT CASE X-FIELD WHEN X-FIELD < 40 THEN ‘X-FIELD < 40’ WHEN X-FIELD < 50 THEN ‘X-FIELD < 50’ WHEN X-FIELD < 60 THEN ‘X-FIELD < 60’ ELSE ‘UNBEKNOWN’END FROM DUAL
因此,我个人认为,CASE语句在处理类似问题就显得非常灵活。当只是需要匹配少量数值时,用Decode更为简洁。
发表评论
-
oracle jdbc链接SID和Service Name的区别
2018-12-24 09:27 1664application-dev.yml配置文件如下 eur ... -
Oracle批量操作
2018-04-24 15:52 460racle批量插入: Xml代码 & ... -
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201
2018-03-07 10:19 1575Oracle数据库mybatis 插入空值时报错(with ... -
Oracle JDBC driver Maven配置
2018-03-05 13:41 1299问题: maven项目,spri ... -
ibatis结合Oracle的iterate insert批量插入
2018-02-27 13:50 1524ibatis批量插入oracle数据库 <inser ... -
数据库分页大全(oracle利用解析函数row_number高效分页)
2018-02-24 17:26 688最近在转换mysql项目到oracle项目,遇到mysql分 ... -
Mybatis结合Oracle的foreach insert批量插入
2018-02-24 14:17 3400最近在做将mysql数据库项目迁移到oracle数据库项目 ... -
oracle聚合函数汇总
2018-02-24 13:02 1614今天在做项目,讲mysql项目转换为oracle项目的时候, ... -
spring集中druid进行数据库监控
2018-02-11 17:52 1820Druid内置提供了一个StatViewServlet用于 ... -
mysql和oracle数据互相迁移
2018-02-11 15:53 823工作中,项目原本是mysql数据库 后台需要换成oracl ... -
[Navicat] 连接Oracle报错_Cannot load OCI DLL 87
2018-02-11 15:43 1900Navicat可以用来连接各 ... -
oracle批处理开启或者关闭服务
2013-12-16 22:53 992机子上装着Oracle,但并不是很常要用到,所以把原先 ... -
oracle 正则表达式用法
2011-08-05 09:30 1707l 方括号表达示 方括号表达式 ... -
oracle case when 用法总结
2011-08-04 14:27 2945Oracle dbms_job package 用法小结 O ... -
Oracle语句优化30个规则详解
2011-08-04 11:07 2824select tab_name from tables ... -
Oracle中的Union,Union All,Intersect,Minus
2011-08-04 09:09 1127众所周知的几个结果 ... -
oracle partition by与group by 的区别
2011-08-03 10:49 10574SELECT b, c, d,SUM(d) O ... -
oracle executeimmediate用法小解
2011-08-03 09:16 1272EXECUTE IMMEDIATE 代替了以 ... -
oracle merge的用法
2011-08-02 17:53 1087MERGE语句是Oracle9i新增的语法,用来合并UPDAT ... -
Oracle 小知识 总结(一) .
2011-08-02 15:42 20981. 每天的8:00到23:00每隔5分钟执行一个sql语句的 ...
相关推荐
关于oracle decode函数的用法
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ...
Oracle DECODE函数功能很强,下面就为您详细介绍Oracle DECODE函数的用法,希望可以让您对Oracle DECODE函数有更多的了解。 Oracle DECODE函数 Oracle DECODE函数是Oracle公司独家提供的功能,它是一个功能很强的...
Oracle中Decode()函数的有关用法Oracle中Decode()函数的有关用法
Oracle中Decode()函数使用技巧Oracle中Decode()函数使用技巧Oracle中Decode()函数使用技巧
oracle中decode()函数使用技巧 很有帮助的哦
NULL 博文链接:https://lisanlai.iteye.com/blog/793404
主要介绍了oracle中decode函数的使用方法,需要的朋友可以参考下
主要介绍了oracle中decode函数的使用方法示例,还是比较不错的,这里分享给大家,供需要的朋友参考。
DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名。 今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网...
Oracle 中 decode 函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ...
本书全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有新增功能和工具,如何执行功能强大的SQL查询,如何编写PL/SQL和SQL*Plus语句,如何使用大对象和对象-关系数据库。通过学习本书,您可以了解...
1. Decode()函数使用技巧(NT+IIS+ASP+ORACLE) 2. Dual伪列 3. EXP、IMP 命令详解 4. Exp-Imp大量数据 5. Export-Import 使用技巧与常见错误 6. NULL 使用详解 7. Oracle for NT系统实用工具介绍 8. Oracle ...
第4章 规划Oracle应用程序——方法、风险和标准 第Ⅱ部分 SQL和SQL*Plus 第5章 SQL中的基本语法 第6章 基本的SQL*Plus报表及命令 第7章 文本信息的收集与修改 第8章 正则表达式搜索 第9章 数值处理 第10章 日期:...
多使用Decode函数来作简单的代码和名称间的转换,以减少表关联 使用Truncate替代delete来删除记录,但Truncate数据不记录日志,无法进行回滚 对于复杂的存储过程可以多次提交的数据的要多分多次Commit,否则长...
含义解释: decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ……ELSIF 条件=值n THEN RETURN...使用方法: