程序员人生 网站导航

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

栏目:互联网时间:2014-11-09 10:58:29

1、DISTINCT用法:

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

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

        例: 源数据                                                                查询结果

         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个位置开始截取长度为1的字符串。

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

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

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

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

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

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

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

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

5、MERGE   INTO用法:

        在数据操作时,有时可能需要将1个数据表的某些字段添加或更新到另外一张数据表里,这时候就有1个高效力的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)

    


          

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐