首页 > 代码库 > ORACLE数据库操作简便函数用法

ORACLE数据库操作简便函数用法

1、DISTINCT用法:

         SELECT   DISTINCT    A.NAME  ,  A.STUDENT_ID  ,  A.SEX   FROM TABLE STUDENT  

         这条SQL语句是从学生表里查询了姓名,学号,性别,但是DISTINCT的查询规则是只要有一个不同,就是符合条件的。

        例: 源数据                                                                查询结果

         ID    NAME    SUTDENT_ID    SEX                               NAME        STUDENT_ID          SEX

          1       张明            101                男                                张明                  101                     男

          2       张明           102                男                                 张明                  102                     男

          3       张明           101                男                                 李倩                  103                     女

          4       李倩           103               女

2、WMSYS.WM_CONCAT用法:用来连接字符,中间用 , 隔开。

  SELECT   WMSYS.WM_CONCAT(STUDENT_ID)    AS STUDENT_ID   FROM STUDENT GROUP BY (NAME) 

        查询结果:101,102

3、SUBSTR用法:SUBSTR(字符串,起始位置,截取长度),默认查找顺序从左到右,当起始位置为负数的时候,从右边开始查找。

  SELECT  SUBSTR(‘slighthost.com‘ , 0 , 1)   AS   M  FROM   DUAL    //返回结果是s  ,从字符串的第一个位置开始截取长度为1的字符串。

  SELECT  SUBSTR(‘slighthost.com‘, 1, 1)   AS   M  FROM   DUAL      //返回结果是s,0和1都表示截取的开始位置为第一个字符。

  SELECT  SUBSTR(‘slighthost.com‘ , 14, 1)   AS   M  FROM   DUAL     //返回结果是m,从最后一个字符开始截取。

  SELECT  SUBSTR(‘slighthost.com‘ , -1, 1)   AS   M  FROM   DUAL     //返回结果是m,-1表示从最后一个字符开始截取。

  SELECT  SUBSTR(‘slighthost.com‘ , -8, 3)   AS   M  FROM   DUAL     //返回结果是hos,-8表示从右到左数的第8个字符开始截取。

4、INSTR用法:INSTR(源字符串,要查找的字符串,从第几个字符开始,要找到第几个匹配的序号),查找顺序与SUBSTR相同。

  SELECT  INSTR(‘collaboration floor‘,‘or‘,1,2)   AS   M  FROM   DUAL     // 返回结果是18

  SELECT  INSTR(‘collaboration floor‘,‘or‘,-1,2)   AS   M  FROM   DUAL     // 返回结果是7

  SELECT SUBSTR(‘collaboration floor‘ ,  INSTR(‘collaboration floor‘,‘or‘,-1,2) , 3 )  FROM DUAL               //返回结果是ora

5、MERGE   INTO用法:

        在数据操作时,有时可能需要将一个数据表的某些字段添加或更新到另一张数据表里,这时就有一个高效率的SQL语句。

        merge into a
      using (select b.* from a, b where a.id = b.id and a.qty <> b.qty ) b
      on (a.id = b.id)                 //这条语句是说明两个表拷贝的连接条件
      when matched then        //如果存在a.id = b.id,那么就更新a.qty = b.qty
      update set a.qty = b.qty
      when not matched then   //如果不存在a.id=b.id,那么就将b中的id、qty添加到a表中
      insert (a.id,a.qty)
      values(b.id,b.qty)

    


          

ORACLE数据库操作简便函数用法