Oracle中常用的几个函数及null处理

1 Oracle中的替换函数

REPLACE 函数
REPLACE (expr,from_string,to_string)
将字符串expr中的所有from¬_string 替换为to_string 以字符串为单位,将整个字符替换。
TRANSLATE(expr,from_string,to_string)
以字符为单位, 按顺序将expr中的from-string替换为对应的to_string,一一替换,有的为空。如果to_tring为空,则返回null。

SELECT TRANSLATE('abcdefghij','abcefghi','123') FROM dual; 
123dj   
SELECT REPLACE ('abcdefghij','abdefghi','123') FROM dual;
abcdefghij

2 返回一行值中的最大与最小值
greatest :
greatest (value1, value2, value3, …)
返 回最大值,以第一个参数类型为标准,并不能进行隐式转换。 如果有null,返回null。
LEAST
LEAST(value1, value2, value3, …)
返回value列表最小的值,以第一个参数类型为标准,并不能进行隐式转换。 如果有null,返回null。

3 对null值进行转换:
coalesce 与nvl
区别就是coalesce 可以有多个参数,返回第一个不为null的值。

4 排序后对null值的处理:

使用nulls first 和nulls last

select * from A t order by t.a nulls first

5 in 对null的处理。
首先

select 1 from dual where  1!=null   select 1 from dual where  1=null

这两句都不会有返回结果。

 select 1 from table1  where  t.a in( 'a') 和   select 1 from table1  where  t.a not  in( 'a')

这两句返回的结果加起来,并非是全集。这两句sql 都不会把有null的行取出来。

 select 1 from table1  where  t.a in( 'a') 的补集是这样的
select 1 from table1  where lnnvl( t.a  in( 'a'))

lnnvl 函数会把null的行取出来。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值