Oracle 通用函数 
① 
NVL 函数--------将空值转换成一个已知的值:

可以使用的数据类型有日期、字符、数字。

函数的一般形式:  
  NVL(commission_pct,0)           
  NVL(hire_date,'01-JAN-97')

  NVL(job_id,'No Job Yet')

(注意select 原数据类型是number  对返回值要求也是number  其他同理)?

求年薪

select employee_id,
nvl(commission_pct,0) ,
   salary*12 ,
salary*12*(1+nvl(commission_pct,0)) as "annual salary"--------------(commission_pct 有的没有)   from employees

练习2:输出last_name,department_id,当department_id为null时,显示‘没有部门’。-----------当时没思路 

select employee_id
,nvl(to_char(department_id),'没有部门') ----------------------------后面没法转 转前面
from employees

 

2. 使用 NVL2 函数 
格式:NVL2 (expr1, expr2, expr3) : expr1不为NULL,返回expr2;为NULL,返回expr3。

练习:查询员工的奖金率,若为空,返回0.01,若不为空,返回实际奖金率+0.015

select  last_name
,commission_pct
,nvl2(commission_pct,commission_pct+0.05,0.01) from employees

3. 使用 NULLIF 函数 
 
NULLIF (expr1, expr2) :  相等返回NULL,不等返回expr1  
 
练习 当 first_name长度等于last_name长度 返回null 否则返回 first_name

select   length(first_name) ,
length(last_name),
nullif(length(first_name),
length(last_name))
from employees

4. 使用 COALESCE 函数

更具有一般性   coalesce()的参数是可变参数。 参数要求2个以上都行。。

样式: 
①coalese(参数1,参数2)  ---------------当第一个参数为为null的时候  判断第二参数  若第二个也为空 返回空 
②coalese(参数1,参数2,参数3) ---------------第一个为空判断第二个,第二个为空判断第三个,第三个为空返回null

COALESCE 与 NVL 相比的优点在于 COALESCE 可以同时处理交替的多个值。 

如果第一个表达式为空,则返回下一个表达式,对其他的参数进行COALESCE  
 
练习 判断commission_pct 是否为null

  ①否 commission_pct

  ②是  判断salary是否为null

     ①否  就打印工资

     ②是  就打印 10

 select   first_name ,
commission_pct ,
salary,
coalesce(commission_pct,salary,100)
from employees
  order by commission_pct

oracle通用函数,nvl,nvl2,NULLIF ,coalesce的更多相关文章

  1. oracle几个函数整理 DECODE() NVL NVL2 NULLIF Coalesce(转)

    DECODE() decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值 ...

  2. oracle NVL,NVL2,NULLIF,COALESCE

    Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数.主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以. 下面简 ...

  3. NVL函数(NVL,NVL2,NULLIF,COALESCE)

    NVL 语法:NVL( expr1, expr2) 功能:如果expr1为NULL,则NVL函数返回expr2的值,否则返回expr1的值,如果两个参数的都为NULL ,则返回NULL. 注意事项:e ...

  4. 函数nvl,nvl2,nullif,coalesce

    NVL: Converts a null value to an actual valueNVL2:If expr1 is not null, NVL2 returns expr2. If expr1 ...

  5. oracle函数nvl, nvl2, nullif

    nvl函数 语法: NVL(表达式1, 表达式2) select nvl(s.name, '未填写') from student s 如果表达式1的值为空, 则显示第二个值, 否则显示原来的值, nv ...

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

  7. oracle函数nvl,nvl2的区别,nullif函数,coalesce函数

    在oracle中用nvl和nvl2函数来解决为空的情况,例如,如果奖金为空,则为它指定一个数.也就是nvl(奖金字段,指定的奖金),但是两个的类型要一致. 1)nvl()函数 SQL> sele ...

  8. oracle之nvl,nvl2,decode

    oracle sql常用查询nvl,nvl2,decode区别及使用方法 1,NVL( E1, E2) 如果E1为NULL,则NVL函数返回E2的值,否则返回E1的值,如果两个参数都为NULL ,则返 ...

  9. SQL Fundamentals || Single-Row Functions || 通用函数 General function || (NVL,NVL2,NULLIF,DECODE,CASE,COALESCE)

    SQL Fundamentals || Oracle SQL语言 SQL Fundamentals: Using Single-Row Functions to Customize Output使用单 ...

随机推荐

  1. 开源视频平台:MediaCore(MediaDrop)

    MediaCore 是一个多媒体的建站系统,主要的功能包括视频.音频.YouTube集成.播客和 iTunes RSS 生成,用户可以提交各种多媒体内容. <开源中国>网站上说它是一个开源 ...

  2. Mahout 算法

    Mahout 包括协同过滤,基于User和Item的推荐:kmeans.Fuzzy-kmeans .Mean shift .Dirichlet process .LDA聚类:奇异值分解:并行频繁项集挖 ...

  3. DBA_基本Bash语法汇总

    一.变量 1.变量命名可使用英文字母.数字和下划线,必须以英文字母开头,区分大小写. 2.每个shell都拥有自己的变量定义,彼此互不影响. 3.变量直接以等号赋值,注意等号两边不可留空,若等号右侧有 ...

  4. spring 注解模式 详解

    Spring基于注解实现Bean定义支持如下三种注解: Spring自带的@Component注解及扩展@Repository.@Service.@Controller,如图12-1所示: JSR-2 ...

  5. Android监听电池状态

    监听电池状态只需要接收Intent.ACTION_BATTERY_CHANGED的广播即可,当电池状态发生变化时会发出广播. 1.运行状态如下图: (1)连接USB时的状态 (2)断开USB时的状态 ...

  6. Android NDK开发三:java和C\C++交互

    转自:http://www.cnblogs.com/shangdahao/archive/2013/05/02/3053971.html 1.定义native方法并加载动态链接库: public cl ...

  7. C++之多继承

    #include <iostream> using namespace std ; class AA { public: int a ; void Say_hello(void) { co ...

  8. vs2010 matlab混合编程调用matlab引擎

    // matlab_engine.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "engine.h" ...

  9. mybatis 开发环境搭建

    不说废话直接上代码,首先看下我的目录机构: 红色部分,表明你所需的jar包,已经配置文件. 创建用户表,以及插入数据. create table books(id int (11) not null ...

  10. How to configure ODBC DSN in Client to access remote DB2 for Windows

      How to configure ODBC DSN in Client to access remote DB2 for Windows MA Gen feng (Guangdong Unito ...