`

oracle 辅助函数

阅读更多
辅助函数(Miscellaneous Single-Row Functions)

1、DECODE(exp,s1,r1,s2,r2..s,r[,def]) 可以把它理解成一个增强型的if else,只不过它并不通过多行语句,而是在一个函数内实现if else的功能。
exp做为初始参数。s做为对比值,相同则返回r,如果s有多个,则持续遍历所有s,直到某个条件为真为止,否则返回默认值def(如果指定了的话),如果没有默认值,并且前面的对比也都没有为真,则返回空。
毫无疑问,decode是个非常重要的函数,在实现行转列等功能时都会用到,需要牢记和熟练使用。

例如:
select decode('a2','a1','true1','a2','true2','default') from dual; 

2、GREATEST(n1,n2,...n) 返回序列中的最大值
例如:
SELECT GREATEST(15,5,75,8) "Greatest" FROM DUAL; 


3、LEAST(n1,n2....n) 返回序列中的最小值
例如:
SELECT LEAST(15,5,75,8) LEAST FROM DUAL; 

4、NULLIF(c1,c2)
Nullif也是个很有意思的函数。逻辑等价于:CASE WHEN c1 = c2 THEN NULL ELSE c1 END
例如:
SELECT NULLIF('a','b'),NULLIF('a','a') FROM DUAL; 


5、NVL(c1,c2) 逻辑等价于IF c1 is null THEN c2 ELSE c1 END。c1,c2可以是任何类型。如果两者类型不同,则oracle会自动将c2转换为c1的类型。
例如:
SELECT NVL(null, '12') FROM DUAL; 


6、NVL2(c1,c2,c3) 大家可能都用到nvl,但你用过nvl2吗?如果c1非空则返回c2,如果c1为空则返回c3
例如:
select nvl2('a', 'b', 'c') isNull,nvl2(null, 'b', 'c') isNotNull from dual; 


7、SYS_CONNECT_BY_PATH(col,c) 该函数只能应用于树状查询。返回通过c1连接的从根到节点的路径。该函数必须与connect by 子句共同使用。
例如:
create table tmp3( 
rootcol varchar2(10), 
nodecol varchar2(10) 
); 

insert into tmp3 values ('','a001'); 
insert into tmp3 values ('','b001'); 
insert into tmp3 values ('a001','a002'); 
insert into tmp3 values ('a002','a004'); 
insert into tmp3 values ('a001','a003'); 
insert into tmp3 values ('a003','a005'); 
insert into tmp3 values ('a005','a008'); 
insert into tmp3 values ('b001','b003'); 
insert into tmp3 values ('b003','b005'); 

select lpad(' ', level*10,'=') ||'>'|| sys_connect_by_path(nodecol,'/') 
from tmp3 
start with rootcol = 'a001' 
connect by prior nodecol =rootcol; 


8、SYS_CONTEXT(c1,c2[,n]) 将指定命名空间c1的指定参数c2的值按照指定长度n截取后返回。
Oracle9i提供内置了一个命名空间USERENV,描述了当前session的各项信息,其拥有下列参数:
? CURRENT_SCHEMA:当前模式名;
? CURRENT_USER:当前用户;
? IP_ADDRESS:当前客户端IP地址;
? OS_USER:当前客户端操作系统用户;
等等数十项,更详细的参数列还请大家直接参考Oracle Online Documents
分享到:
评论

相关推荐

    sql oracle 辅助工具

    本人手写。。需要源码的留言。自己可以进行添加功能! 支持 sql2000 sql2005 sql2008 oracle ------------- 帮助你写 sql:视图 存储...sql2005辅助,sql2008辅助,oracle辅助,sql oracle代码生成,sql oracle代码提示

    oracle函数介绍(2) 非著名函数之单值函数.doc

    第二篇 非著名函数之单值函数 (一).数值型函数(Number Functions) (二).字符型函数返回字符值(Character Functions Returning Character Values) ...其它辅助函数(Miscellaneous Single-Row Functions)

    oracle函数介绍(1) 著名函数之单值函数.doc

    第一篇 著名函数之单值函数 (一).数值型函数(Number Functions) (二).字符型函数返回字符值(Character Functions Returning Character Values) ...其它辅助函数(Miscellaneous Single-Row Functions)

    精通Oracle.10g.PLSQL编程

    本书不仅适合于PL/SQL初学者,而且也适合于有经验的PL/SQL编程人员,本书还可以作为Oracle培训班的教材或者辅助材料。 <br> 前言 第1章 PL/SQL综述 1.1 SQL简介 1.2 PL/SQL简介 1.3 ...

    ORACLE数据库智能化管理系统2012

    可根据查询结果自动生成IN、DECODE等多形式函数的参数,省去你查询手工输入上述函数多参数时的痛苦。 批量处理查询结果集中数据去除多余前后空格,增加对多字段字符串数据标准化,替换或去除数据中任意数据位数据,...

    Navicat Premium操作手册.7z

    5SQL Server 分区函数146SQL Server 分区方案147SQL 预览147维护147维护MySQL147维护Oracle148维护PostgreSQL152维护SQLite153维护SQL Server153表查看器155网格查看155使用导览栏155编辑记录156排序、查找或替换...

    oracle详解

    当然,我们也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议。对于越来越大的数据库,特别是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向...

    oracle数据库优化辅助SQL语句

    具体详情请看下文代码分析。 --查询正在执行的SQL语句 SELECT OSUSER 电脑登录身份, PROGRAM 发起请求的程序, ...SCHEMANAME, B.Cpu_Time 花费cpu的时间, STATUS, B.SQL_TEXT 执行的sql, ...LEFT JOIN V$SQL B ON A.SQL_...

    DAEF工作集管理函数的实现 (2000年)

    分析了Epicentre模型在Oracle上的投影技术,用G++作为开发工具,采用面向对象的编程方法,开发了实现相应功能的类和一批辅助函数,包括工作集的创建、实例句柄的增加、实例句柄的删除、以及工作集的删除等函数;...

    masters-thesis-ellipsoid:在 MATLAB 中实现的椭球法

    该存储库由三个文件组成:ellipsoid_method 函数、一个名为 separator_oracle_omniscient 的辅助函数和一个包含多个示例的文件。 请参阅有关方法参数的内联注释。 此外,示例的 MATLAB 发布文件附加在 html 文件夹中...

    收获,不止SQL优化 PDF 带书签 第三部分

    随后《收获,不止SQL优化——抓住SQL的本质》指引大家学会等价改写、过程包优化、高级SQL、分析函数、需求优化这些相关的五大神功。有点头晕,能否少一点套路?淡定,这还是“术”的范畴,依然是教你如何解决问题,...

    5.4空间数据库管理系统.pdf

    ˇ £¤Œ˘£' 常见的软件应用 2 代表性软件: Oracle Ingress Informix 空间数据管理专用模块定义操作点、线、面等空间对象的API函数 Oracle Spatial中矢量数据存储 Oracle Spatial: 矢量数据管理: 对矢量数据...

    实战OpenGL三维可视化系统开发与源码精解.part08

    以Oracle 9i为例,介绍了Oracle数据库的安装步骤和Oracle支持的数据类型。在此基础上,介绍了ADO、Pro*C/C++和OCI三个主要Oracle编程接口,对它们的各自功能和特点进行了详细说明,从功能方面、性能方面、开发难度...

    实战OpenGL三维可视化系统开发与源码精解.part03.rar

     包括第1章三维图形世界、第2章OpenGL概述和第3章Oracle与 OCI技术及编程基础。  第1章 介绍了计算机三维图形技术的发展、科学计算可视化技术、三维可视化工程设计的基本概念和发展现状。  第2章 主要对OpenGL...

    实战OpenGL三维可视化系统开发与源码精解.part01.rar

     包括第1章三维图形世界、第2章OpenGL概述和第3章Oracle与 OCI技术及编程基础。  第1章 介绍了计算机三维图形技术的发展、科学计算可视化技术、三维可视化工程设计的基本概念和发展现状。  第2章 主要对OpenGL...

    实战OpenGL三维可视化系统开发与源码精解.part10

    以Oracle 9i为例,介绍了Oracle数据库的安装步骤和Oracle支持的数据类型。在此基础上,介绍了ADO、Pro*C/C++和OCI三个主要Oracle编程接口,对它们的各自功能和特点进行了详细说明,从功能方面、性能方面、开发难度...

    实战OpenGL三维可视化系统开发与源码精解.part05.rar

    以Oracle 9i为例,介绍了Oracle数据库的安装步骤和Oracle支持的数据类型。在此基础上,介绍了ADO、Pro*C/C++和OCI三个主要Oracle编程接口,对它们的各自功能和特点进行了详细说明,从功能方面、性能方面、开发难度...

    实战OpenGL三维可视化系统开发与源码精解.part02.rar

     包括第1章三维图形世界、第2章OpenGL概述和第3章Oracle与 OCI技术及编程基础。  第1章 介绍了计算机三维图形技术的发展、科学计算可视化技术、三维可视化工程设计的基本概念和发展现状。  第2章 主要对OpenGL...

    实战OpenGL三维可视化系统开发与源码精解.part09

    以Oracle 9i为例,介绍了Oracle数据库的安装步骤和Oracle支持的数据类型。在此基础上,介绍了ADO、Pro*C/C++和OCI三个主要Oracle编程接口,对它们的各自功能和特点进行了详细说明,从功能方面、性能方面、开发难度...

    实战OpenGL三维可视化系统开发与源码精解.part06.rar

    以Oracle 9i为例,介绍了Oracle数据库的安装步骤和Oracle支持的数据类型。在此基础上,介绍了ADO、Pro*C/C++和OCI三个主要Oracle编程接口,对它们的各自功能和特点进行了详细说明,从功能方面、性能方面、开发难度...

Global site tag (gtag.js) - Google Analytics