2020-04-14

空值相关笔记

查找空值:查找空值不能用运算符’=’,而要用is null 或者is not null

空值与运算:null不支持加减乘除,大小比较,相等比较,否则返回为空。所以当要进行运算的时候需要把空值改为有意义的值。
Nvl只能处理单个参数,coalesce可以处理多行参数
1、nvl()函数的格式如下:NVL(expr1,expr2);
例子:select name,NVL(name,-1) from user;运行后,结果返回两列数值,若name为空,则返回-1,若name不为空值,则返回其自身。

2.COALESCE()函数 定义:返回列表中第一个非null表达式的值。如果所有表达式求值为null,则返回null
COALESCE()函数有两种用法: 1.COALESCE ( expression1, expression2 ); 2.COALESCE ( expression1, expression2, … expression-n );
其中第一种就相当于Oracle中的nvl或者mysql中的ifnull,写成表达式的形式为:
CASE WHEN expression1 IS NOT NULL THEN expression1 ELSE expression2 END; 第二种可以包含n个表达式,表示如果第一个不为空取第一个,否则判断下一个,以此类推,如果全部为空,则返回null值。 需注意:vertica中空字符串跟null值不一样

空值与函数:函数对于空值的处理方式不一样,有些返回空,如greatest()
GREATEST(expr_1, expr_2, …expr_n)函数从表达式(列、常量、计算值)expr_1, expr_2, … expr_n等中找出最大的数返回。在比较时,OracIe会自动按表达式的数据类型进行比较,以expr_1的数据类型为准。

有些返回期望值,如replace()
REPLACE(String,from_str,to_str) 即:将String中所有出现的from_str替换为to_str。

而在decoe()可以比较控制。
decode(字段|表达式,条件1,结果1,条件2,结果2,…,条件n,结果n,缺省值);
–缺省值可以省略 表示如果 字段|表达式 等于 条件1 时,DECODE函数的结果返回 条件1 ,…,如果不等于任何一个条件值,则返回缺省值。【注意】:decode 函数 ,只能在select 语句用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值