ORACLE几种常用的方法

1、decode 常见的用法 :

  格式:decode(condition,value1,result[, value2,result2], default_result)

  说明:decode相当于if条件判断函数,condition为表达式,相当于输入的值,当输入值为value1时,则对应的返回结果为result1;

       当输入值为value2时,则对应的返回结果为result2;如果未能与任何一个value匹配成功,则对应的返回结果为default_result;

  实例1:decode不同于其他的SQL函数,decode函数可以识别和操作空值。

SELECT name,DECODE(grade_level,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’)
FROM emp;

  实例2: decode 也可以使用嵌套的方式来进行多个值得选择

    一个员工的出勤:可能会出现四种状态:公出,请假,出勤,休息。其中‘公出’是在‘请假’记录中包含的,“出勤”和“休息”是一个字段的两个状态。

select name,decode(business_out , Y, "公出", decode(leave, Y,"请假" ,decode(attend,Y,“出勤”,N,“休息”)))
from emp;

2、sign 常见用法:

  格式:sign(n)

  说明:取数字n的符号,n大于0返回1,小于0返回-1,等于0返回0

  实例:

select sign( 100 ),sign(- 100 ),sign( 0 ) from dual;
-- 返回结果:1 -1 0
select sign(20-10) from dual;
-- 返回结果:1

3、nvl 常见用法

  格式:nvl(exp1,exp2)

  说明:如果oracle的第一个参数exp1为空,则显示第二个参数exp2的值,如果第一个参数不为空,则显示第一个参数本来的值

  实例:

select name,NVL(comm, -1) comm from emp;
-- 结果 其中显示-1的本来的值全部都是空值的
name comm
  
SMITH -1
ALLEN 300
WARD 500
JONES -1 

  用法:可以用它来判断一个字段是否为null,oracle判断某字段是否为null时,不可以使用‘=’,只能使用'IS NULL', 'IS NOT NULL',不可以是‘=NULL’, '!=NULL'

       NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。即‘where NULL=NULL’整个查询结果的结果集一定是空的。

4、case…when…常见用法

  格式1(简单case函数):case sex

                when 'boy' then '男'

                when 'gril' then '女'

                else '未知' end

  格式2(搜索case函数)(常用,因为可以写判断是,不仅仅是‘=’):case when sex = 'boy' then '男'

                when sex = 'gril' then '女'

                else '未知' end

  说明:这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。

oracle的decode、sign、nvl,case...then函数的更多相关文章

  1. Oracle中的COALESCE,NVL,NVL2,NULLIF函数

    http://jingyan.baidu.com/article/fa4125acaf898e28ac7092b9.html

  2. Oracle的decode、sign、trunc函数

    原文http://knowyouknowme.iteye.com/blog/574974 一.decode 在Oracle/PLSQL中,  decode 具有和 IF-THEN-ELSE 一样的功能 ...

  3. oracle group by rollup,decode,grouping,nvl,nvl2,nullif,grouping_id,group_id,grouping sets,RATIO_TO

    干oracle 047文章12当问题,经验group by 声明.因此邂逅group by  rollup,decode,grouping,nvl,nvl2,nullif,RATIO_TO_REPOR ...

  4. oracle中DECODE与CASE的用法区别

    对于CASE与DECODE其实并没有太多的区别,他们都是用来实现逻辑判断.Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从而提高查询的性能.而CASE是9i以后提供的语法,这个 ...

  5. oracle的decode函数

    以下转自百度, 类似于case... when... then...else...end... DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供 ...

  6. Oracle 中 decode 函数用法

    Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...

  7. Oracle数据库DECODE函数的使用.

    decode函数是Oracle数据库独有的. 语法为: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 例子:select decode(sign(变量1-变量2) ...

  8. decode与case when 函数

    百度百科: DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名. DECODE 中的if-th ...

  9. Oracle 中 decode 函数用法(转)

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

随机推荐

  1. linux使用tree将目录结构写进txt

    比如把caffe的二级目录结构写进txt: tree -L > /home/wmz/treecaffe.txt 则会在/home/wmz/目录下生成一个名为treecaffe.txt的文件,文件 ...

  2. ubuntu建立软链接注意事项

    ln 参数 源文件 目标链接文件 -s:代表新建一个软链接,又称符号链接: eg.  ln -s /mnt/d/Documents/source.xlsx target.xlsx 1.目标文件的后缀名 ...

  3. mybatis用mysql数据库自增主键,插入一条记录返回新增记录的自增主键ID

    今天在敲代码的时候遇到一个问题,就是往数据库里插入一条记录后需要返回这个新增记录的ID(自增主键), 公司框架用的是mybatis的通用Mapper接口,里面的插入方法貌似是不能把新纪录的ID回填到对 ...

  4. Python - 定时动态获取IP代理池,存放在文件中

    定时功能通过module time + 死循环实现,因为time.sleep()会自动阻塞 get_ip_pool.py """ @__note__: while Tru ...

  5. linux 配置IPSAN存储

    一 SAN存储 1.1 SAN存储介绍 存储区域网络(Storage Area Network,简称SAN)采用网状通道(Fibre Channel ,简称FC,区别与Fiber Channel光纤通 ...

  6. oracle中以dba_、user_、v$_、all_、session_、index_开头

    原 oracle中以dba_.user_.v$_.all_.session_.index_开头 2011年07月05日 11:26:06 clbxp 阅读数:3279   oracle中以dba_.u ...

  7. nested exception is org.apache.ibatis.binding.BindingException: Parameter 'cons_id' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]

    修改DAO层的类中的方法,如下所示:

  8. 201771010135 杨蓉庆《2018面向对象程序设计(java)课程学习进度条》

                                                                                                        ...

  9. [Linux kali] Kali KDE桌面安装中文输入法 不能登录系统

    #开始 第一次实体机上面安装kali的KDE桌面版本 结果就遇到了很多的BUG 比如这次就是安装中文输入法有问题 这次安装的是fcitx框架的 尝试了 谷歌输入法 还有搜狗输入法 都有这个问题 也就是 ...

  10. 安装搭建appium运行环境

    整体步骤: 1.安装appium依赖的Python包(Appium-Python-Client): 2.安装Appium Desktop(集成了appium server和node.js,所以不需要额 ...