ORACLE資料庫操作簡便函數用法

來源:互聯網
上載者:User

標籤:oracle   distinct   merge into   substr   instr   

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資料庫操作簡便函數用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.