工作第一周Oracle函數總結,第一周oracle函數

來源:互聯網
上載者:User

工作第一周Oracle函數總結,第一周oracle函數

1. Oracle 行轉列和列轉行

   最常見的行轉列,主要原理利用decode函數、彙總函式(sum()  Max())、結合group by分組實現的

     MAX(DECODE(SW.SBBL, '1', SW.SBBL, NULL)) AS SBBL_01,  

      MAX(DECODE(SW.SBBL, '2', SW.SBBL, NULL)) AS SBBL_02,

      說明: SW.SBBL中值為1或2,現在將其轉化為2列。如果是1就以SBBL_01為列名,這一列的值為1。如果是2就以SBBL_02為列名,這一列的值為2.

       decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,預設值)

    DECODE( B.TASK_STATUS,'1','辦理中','2','已辦理')

 列傳行,主要利用sql裡面的union,具體sql

    select user_name, 'CN_SCORE' COURSE , CN_SCORE as SCORE from test_tb_grade2
     union
     select user_name, 'MATH_SCORE' COURSE, MATH_SCORE as SCORE from test_tb_grade2
     union
     select user_name, 'EN_SCORE' COURSE, EN_SCORE as SCORE from test_tb_grade2
     order by user_name,COURSE

2. 對錶中的資料進行去除重複,當表資料小的時候可以直接使用distinct(屬性),但當表資料大的時候

     使用exists替換distinct
     低效
     select distinct dept_no,dept_name
          from dept d,emp e
     where d.dept_no=e.dept_no
     高效
    select dept_no,dept_name
         from dept d
     where exists(select 1 from emp e
              where e.dept_no=d.dept_no)

3.  oracle採用自下而上的順序解析where子句。當where中多表聯結,返回行數少的表,有過濾條件的子句應放在where子句最後

4.  當表資料大的時候,使用truncate替代delete進行資料刪除操作

5.  將date類型的資料進行轉化為字串類型操作。

     TO_CHAR(B.RECEIVE_TIME, 'YYYY-MM-DD HH24:MI:SS') RECEIVE_TIME

6.sql最佳化一般原則:
  盡量依賴oracle最佳化器,建立合適的索引。
  編碼方面 利用索引,避免大表、合理使用暫存資料表、避免寫複雜sql

幾個常見最佳化方案
    建立表時,應盡量建立主鍵,根據實際需要調用整資料表pctfree和pctused參數
    大資料表刪除 truncate table
    少用*號 select count(key) from tab where key>0效能優於 select count(*)
    盡量少用嵌套子查詢
    對於比較多or運算,建議分成多個查詢,用union all連接起來
    oracle 解析器對錶解析從右至左,記錄少的表放在右邊
    訪問頻繁的表可常駐記憶體。alter table ..cache
    避免複雜的多表關聯
    避免使用耗費資源的操作

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

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.