`
xw302
  • 浏览: 123635 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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; --取较小值
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基础教程

    oracle基础教程 课程说明 1 课程介绍 1 课程目标 1 相关资料 1 第1章 ORACLE数据库概述 2 1.1 产品概述 2 ...小结 61 附录A ORACLE数据字典与视图 62 附录B 动态性能表 68 附录C SQL语言运算符与函数 70

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    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 ...

    精通SQL--结构化查询语言详解

    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 数据库应用教程课件 第7章.pptx

    Oracle数据库在处理复杂的业务逻辑时,常常需要用到过程、函数和程序包。这些概念是PL/SQL编程的重要组成部分,它们提供了模块化、可重用性和可维护性的解决方案。 7.1 子程序 子程序是PL/SQL中命名的代码块,可以...

    自学用的,简单PL/Sql

    ### 小结 通过对PL/SQL的学习,我们可以了解到这是一种功能强大、应用广泛的语言,特别适合于Oracle数据库环境下的开发工作。掌握PL/SQL不仅可以帮助我们更高效地管理数据,还可以提高数据库应用程序的质量和性能。...

    ADF Execl导入导出方法

    #### 小结 通过上述分析可以看出,ADF结合Apache POI库为开发者提供了一套高效便捷的方式来处理Excel文件的导出任务。这种方式不仅降低了开发难度,同时也保证了程序的灵活性和可维护性。对于需要频繁处理大量数据的...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    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...

Global site tag (gtag.js) - Google Analytics