mysql和oracle常用函数_数据库常用函数(oracle和MySQL)

distinct : 去重复

MySQL :

①IFNULL(字段,0) :作用是 值为 NULL 则 ISNULL() 返回 0。

COALESCE(字段,0)与IFNULL(字段,0)用法一致。

group by 必须放在 order by 和 limit之前。

oracle :

①nvl(字段,0) :作用是 值为 NULL 则 ISNULL() 返回 0。其中0也可以是字段

②case when 条件1 then 结果1 when 条件2 then 结果2 else 结果3 end

作用:如果条件1成立则得到结果1,如果条件2成立则得到结果2,否则得到结果3

③decode(字段1,0,0,字段2/字段1)

作用:如果字段1为0则结果为0,如果字段1不为0结果则为字段2/字段1(判断除数为用途较大)

另:decode中可使用其他函数,如nvl函数或sign()函数等;

④sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1,

如果取较小值就是

select monthid,decode(sign(sale-6000),-1,sale,6000) from output,即达到取较小值的目的。

⑤wm_concat(distinct 字段1)

作用:将去重后的字段1汇总到一块(可当做group by返回的字段一起使用)

另:substr(dno,1,instr(dno,',')-1)截取第一个,前的字符

substr(字段,1,3)='021' 表示以021开头的字段

在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,也就是说从字符的开始到字符的结尾就结束。

select instr('helloworld','lo') from dual; --返回结果:4 即:在“lo”中,“l”开始出现的位置

select instr('helloworld','l',3,2) from dual; --返回结果:4 也就是说:在"helloworld"的第3(l)号位置开始,查找第二次出现的“l”的位置

注:MySQL中的模糊查询 like 和oracle中的instr()函数有同样的查询效果; 如下所示:

select * from tableName a where name like '%helloworld%';

select * from tableName a where instr(name,'helloworld')>0; --这两条语句的效果是一样的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值