oracle中空值null的判断和转换:NVL的用法
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的用法的更多相关文章
- Oracle中的NULL、’’(空字符串)以及’_’(空格)
本文首发于 http://youngzy.com/ 在Oracle中使用 null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? null和’’(空字符串)是一个意思 注: 为了便于 ...
- 【转】oracle中的NULL、''(空字符串)以及'_'(空格)
在Oracle中使用null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? 1.NULL和''(空字符串)是一个意思 注:为了便于区分空字符串和空格,下面的示例均以'_'代表空格. ...
- Spark Dataset DataFrame空值null,NaN判断和处理
Spark Dataset DataFrame空值null,NaN判断和处理 import org.apache.spark.sql.SparkSession import org.apache.sp ...
- Oracle中的null与空字符串''的区别
含义解释:问:什么是NULL?答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零.ORACLE允许任何一种数据类型的字段为空,除了以下 ...
- Oracle中的null
测试数据:公司部分员工基本信息
- Guid和Oracle中16进制字符的转换
我们知道在Oracle中存的guid是16进制字符串,而在我们的C#代码中存的是guid对象,这样我会就要进行转换, 下面给出了两者进行转换的方法: public class Guid2RawProc ...
- oracle 中的null与''
1.先看看Null与''在oracle中的表现 C:\Users\zen>sqlplus hr/hr SQL Production :: Copyright (c) , , Oracle. Al ...
- MySQL中的case when 中对于NULL值判断的坑
sql中的case when 有点类似于Java中的switch语句,比较灵活,但是在Mysql中对于Null的处理有点特殊 Mysql中case when语法: 语法1: CASE case_val ...
- Oracle中ROWNUM伪列和ROWID伪列的用法与区别
做过Oracle分页的人都知道由于Oracle中没有像MySql中limit函数以及SQLServer中的top关键字等,所以只能通过伪列的方式去满足分页功能,在此,不谈分页方法,只从根本上去介绍这两 ...
随机推荐
- 微软URLRewriter.dll的url重写的简单使用(实现伪静态)
先添加引用URLRewriter.dll到项目下的bin目录中,下载: http://files.cnblogs.com/tianguook/URLRewriter.rar 1.在web.config ...
- 获取jQuery版本号
今天在一个页面需要知道jquery版本号,来决定使用什么样的方法,有以下方式可以获取到 $.fn.jquery $.prototype.jquery 这两种方式都可以获取到jquery的版本号
- (转)akka Router实例
通常在分布式任务调度系统中会有这样的需求:一组actor提供相同的服务,我们在调用任务的时候只需要选择其中一个actor进行处理即可. 其实这就是一个负载均衡或者说路由策略,akka作为一个高性能支持 ...
- Xamarin C# Android for Windows 安装
Xamarin C# Android for Windows 安装 Xamarin的. Android手动安装 安装Xamarin的 Android在Windows机器上 大多数时候,Xama ...
- centos安装问题集合
1.版本选择可能直接打开www.centos.org打不开,但是可以打开http://wiki.centos.org/zh/Download,直接找到centos下载列表, (1)i386:支持32位 ...
- Word该值小于列表中的前一条目
在Word中进行多级编号时,前面一个二级标题是2.1,可后面一个二级标题是4.1,于是想把4.1改成2.2,使用 选中有问题的编号,右击"设置列表缩进",在打开的对话框中我们可以看 ...
- Emacs在RHEL 5上的安装和使用
1. install latest emacs xz -d emacs-24.3.tar.xz tar xvf emacs-24.3.tar ./configure make make install ...
- Struts2之文件上传(单文件/多文件)
<一>简述: Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置,<interceptor name="fileUp ...
- Global Times 单词(日常收集)
1. 2013-09-09 windfall 英[ˈwɪndfɔ:l] 美[ˈwɪndˌfɔl] n.意外之财:被风吹落的果子:意外的收获 eg:Only half made any attempt ...
- Java Executor 线程池