一、
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; --取较小值
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);
引用
此部分为转载,作者Blog:http://blog.csdn.net/AustinLei/
二、.CONCAT
CONCAT连接两个字符串;
SELECT CONCAT(region_name,store_name) FROM Geography WHERE store_name = 'Boston';
结果: 'EastBoston'
在Oracle中concat()只能连接两个字符串,要连接多个用“||”。
SELECT region_name ||''|| store_name FROM Geography WHERE store_name = 'Boston';
结果: 'East Boston'
三、SYSDATE
SYSDATE The oracle sysdate function returns the current date/time as an Oracle DATE datatype.
To represent a DATE datatype in the proper format you can use a date format
分享到:
相关推荐
oracle基础教程 课程说明 1 课程介绍 1 课程目标 1 相关资料 1 第1章 ORACLE数据库概述 2 1.1 产品概述 2 ...小结 61 附录A ORACLE数据字典与视图 62 附录B 动态性能表 68 附录C SQL语言运算符与函数 70
1.10 小结 24 第2章 SQL执行 25 2.1 Oracle架构基础 25 2.2 SGA-共享池 27 2.3 库高速缓存 28 2.4 完全相同的语句 29 2.5 SGA-缓冲区缓存 32 2.6 查询转换 35 2.7 视图合并 36 2.8 子查询解嵌套 39 2.9 ...
17.5 小结 372 第18章 事务控制与并发处理 373 18.1 sql事务控制 373 18.1.1 事务控制的引入 373 18.1.2 事务的特性 373 18.1.3 sql中与事务有关的语句 374 18.2 事务控制的具体实现 376 18.2.1 开始事务 376...
Oracle数据库在处理复杂的业务逻辑时,常常需要用到过程、函数和程序包。这些概念是PL/SQL编程的重要组成部分,它们提供了模块化、可重用性和可维护性的解决方案。 7.1 子程序 子程序是PL/SQL中命名的代码块,可以...
### 小结 通过对PL/SQL的学习,我们可以了解到这是一种功能强大、应用广泛的语言,特别适合于Oracle数据库环境下的开发工作。掌握PL/SQL不仅可以帮助我们更高效地管理数据,还可以提高数据库应用程序的质量和性能。...
#### 小结 通过上述分析可以看出,ADF结合Apache POI库为开发者提供了一套高效便捷的方式来处理Excel文件的导出任务。这种方式不仅降低了开发难度,同时也保证了程序的灵活性和可维护性。对于需要频繁处理大量数据的...
2.4 本章小结 15 第三章 跨域交互缓存处理设计 17 3.1 跨域交互缓存处理需求 17 3.1.1 缓存技术WebStorage 17 3.1.2 跨域交互缓存处理需求 17 3.1.3 页面回退管理需求 17 3.2 缓存处理机制 18 3.2.1 跨域缓存处理 18...