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)

    


          

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。