zoukankan      html  css  js  c++  java
  • 数据库常用函数(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;  --这两条语句的效果是一样的
  • 相关阅读:
    Android画图最基本的三个对象(Color,Paint,Canvas)
    搭建Android开发环境之旅
    对象序列化与反序列化
    JUnit 3.8 演示递归删除文件目录的 测试类程序 .
    JUnit 3.8 让所有测试程序 实现 复合的测试(TestSuite)
    JUnit 3.8 通过反射测试私有方法
    Java NIO
    Java泛型 类型变量的限定
    组织领导层在信息化建设中须要解决的问题
    bootstrap之鼠标操作
  • 原文地址:https://www.cnblogs.com/gaomanito/p/8310246.html
Copyright © 2011-2022 走看看