oracle空值判断 =,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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值