1.NULL空值概念

数据库里有一个很重要的概念:空值即NULL。有时表中,更确切的说是某些字段值,可能会出现空值, 这是因为这个数据不知道是什么值或根本就不存在。

2.NULL空值判断

空值不等同于字符串中的空格,也不是数字类型的0 。因此,判断某个字段值是否为空值时不能使用=,<>,in,not in这些判断符,如果非要用的话,可以用NVL(column_name,'sfd')<>'4'表示就可以了。必需有专用的短语:IS NULL 来选出有空值字段的记录,同理,可用 IS NOT NULL 选出不包含空值的记录。如:

SELECT *FROM party WHERE leader IS NULL;

SELECT *FROM party WHERE leader IS NOT NULL;

3.空值转换

Oracle :
Nvl
NVL函数: NVL函数是将NULL值的字段转换成默认字段输出。

NVL(expr1,expr2)
expr1,需要转换的字段名或者表达式。
expr2,null的替代值

下面是NUMBER, DATE, CHAR OR VARCHAR2的例子:
NVL(commission_pct,0)
NVL(hire_date,'01-JAN-97')
NVL(job_id,'No Job Yet')

Sql Server:
IsNull: 如果是Null,就返回指定的值,否则返回原值。
select userName,IsNULL(address,'无') from [user]...
------------------------------------------------------------------
NullIF 会在两个值(或者表达式)相等的时候返回null,否则返回第一个参数。
select Sum(NullIf(price,100)) from ...
如果价格是100,就当null处理,sum()会忽略null值,所以...
----------------------------------------------------------------------
COALESCE 会返回第一个非空的值,参数是任意多个。
select Coalesce(homephone,officePhone,mobile) from....
只要有一个电话号码被填写了,就一定会返回一个值。
-----------------------------------------------------------------------
Access:
Nz
同Sql Server IsNull。只能在Access程序中使用,Jet ADO不支持
select userName,Nz(address,'无') from [user]...
IIF
select userName,IIF(address is null,'无',address) from [user]...

select userName,IIF(address is null,'没写','写了') from [user]...

本文转自:http://blog.sina.com.cn/s/blog_573a052b0100fu0d.html

oracle中空值null的判断和转换:NVL的用法的更多相关文章

  1. Oracle中的NULL、’’(空字符串)以及’_’(空格)

    本文首发于 http://youngzy.com/ 在Oracle中使用 null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? null和’’(空字符串)是一个意思 注: 为了便于 ...

  2. 【转】oracle中的NULL、''(空字符串)以及'_'(空格)

    在Oracle中使用null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? 1.NULL和''(空字符串)是一个意思 注:为了便于区分空字符串和空格,下面的示例均以'_'代表空格. ...

  3. Spark Dataset DataFrame空值null,NaN判断和处理

    Spark Dataset DataFrame空值null,NaN判断和处理 import org.apache.spark.sql.SparkSession import org.apache.sp ...

  4. Oracle中的null与空字符串''的区别

    含义解释:问:什么是NULL?答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零.ORACLE允许任何一种数据类型的字段为空,除了以下 ...

  5. Oracle中的null

    测试数据:公司部分员工基本信息

  6. Guid和Oracle中16进制字符的转换

    我们知道在Oracle中存的guid是16进制字符串,而在我们的C#代码中存的是guid对象,这样我会就要进行转换, 下面给出了两者进行转换的方法: public class Guid2RawProc ...

  7. oracle 中的null与''

    1.先看看Null与''在oracle中的表现 C:\Users\zen>sqlplus hr/hr SQL Production :: Copyright (c) , , Oracle. Al ...

  8. MySQL中的case when 中对于NULL值判断的坑

    sql中的case when 有点类似于Java中的switch语句,比较灵活,但是在Mysql中对于Null的处理有点特殊 Mysql中case when语法: 语法1: CASE case_val ...

  9. Oracle中ROWNUM伪列和ROWID伪列的用法与区别

    做过Oracle分页的人都知道由于Oracle中没有像MySql中limit函数以及SQLServer中的top关键字等,所以只能通过伪列的方式去满足分页功能,在此,不谈分页方法,只从根本上去介绍这两 ...

随机推荐

  1. go语言基础之全局变量

    1.全局变量 示例: package main import "fmt" func test() { fmt.Println("test a =", a) } ...

  2. CentOS7 常用命令集合

    CentOS7 常用命令集合 文件与目录操作 touch test.txt: 创建一个文本文件 文本内容处理 查询操作 压缩.解压 yum安装器 网络相关 系统相关 XSheel 5相关操作 窗体快捷 ...

  3. POJ2528:Mayor's posters(线段树区间更新+离散化)

    Description The citizens of Bytetown, AB, could not stand that the candidates in the mayoral electio ...

  4. FrameWork模型中引入宏函数报错解决方法

    如下图在Framework的一个简单维度中加入宏函数 解决办法如下图 step1: step2: PS :Cognos 10.1.1中 在cognos connection中创建数据源,为什么没有od ...

  5. [Compose] 17. List comprehensions with Applicative Functors

    We annihilate the need for the ol' nested for loop using Applicatives. For example we have this kind ...

  6. javascript - return

    return 使用,建议使用vsCode编译器. /** * return:中断语句运行. * * 1.return;和return false是一样的 * 2.return只能返回一个参数,可以是值 ...

  7. 【PM】关于系统数据库和服务现场升级的一些看法

    工作快满一年了,立即着手准备第二次出差去升级我们的系统,可是突然想到一件事情,让我颇有感触,是关于系统现场升级的. 我们迭代开发的系统隔一段时间就会须要到用户的现场去为其进行系统升级,当中升级包含cl ...

  8. postgres时间转换函数

    函数 返回类型 描述 例子 to_char(timestamp, text) text 把时间戳转换成字串 to_char(current_timestamp, 'HH12:MI:SS') to_ch ...

  9. 快速激活JetBrains系列产品

    本篇文章由:http://xinpure.com/quickly-activate-the-jetbrains-products/ lanyus.com 域名已被全面封杀,大家可以到 http://i ...

  10. 微信公众平台消息接口开发-封装weixin.class.php(转)

    一.封装weixin.class.php 由于微信公众平台的通信使用的是特定格式的XML数据,每次接受和回复都要去做一大堆的数据处理. 我们就考虑在这个基础上做一次封装,weixin.class.ph ...