Oracle 查詢合并列

來源:互聯網
上載者:User

標籤:class   des   turn   條件   函數傳回值   ext   ...   運算式   預設值   

在ORACLE  查詢時,有時要將多個列合并成一行,其方法如下:

1. decode 函數

  decode 函數的文法為:

   decode(條件,值1,傳回值1,值2,傳回值2,...值n,傳回值n,預設值) 

      或 decode(條件,值1,傳回值1,傳回值2,...值n,傳回值n,預設值) 

  其定義如下::

IF 條件=值1 THEN RETURN(翻譯值1) ELSIF 條件=值2 THEN RETURN(翻譯值2) ...... ELSIF 條件=值n THEN RETURN(翻譯值n) ELSE RETURN(預設值) END IF 

 

例如:decode(欄位或欄位的運算,值1,值2,值3) 
這個函數啟動並執行結果是,當欄位或欄位的運算的值等於值1時,該函數傳回值2,否則傳回值3 
當然值1,值2,值3也可以是運算式,這個函數使得某些sql語句簡單了許多 

 

 

2. wmsys.wm_concat 函數

  把某一列合并,其文法為: wm_concat(列名)

  把合并後的逗號(預設)換成其它的符號,比如|號 , replace(wm_concat(列名),‘,‘,‘|‘)

 

3. ||  串連符號

  文法為: select col1,col2||‘【‘ || col3|| ‘】‘ as A , col4 from table1  其中 ‘【’ 是自行加入的符號,可根據 需要進行替換

 

4. 自訂sql 語句

SELECT   n_sec_code, TRANSLATE (LTRIM (text, ‘/‘), ‘*/‘, ‘*,‘) researcherList    FROM (SELECT ROW_NUMBER () OVER (PARTITION BY n_sec_code ORDER BY n_sec_code,                  lvl DESC) rn,                 n_sec_code, text            FROM (SELECT     n_sec_code, LEVEL lvl,                             SYS_CONNECT_BY_PATH (c_researcher_code,‘/‘) text                        FROM (SELECT   n_sec_code, c_researcher_code as c_researcher_code,                                       ROW_NUMBER () OVER (PARTITION BY n_sec_code ORDER BY n_sec_code,c_researcher_code) x                                  FROM m_researcher_stock_rel                              ORDER BY n_sec_code, c_researcher_code) a                  CONNECT BY n_sec_code = PRIOR n_sec_code AND x - 1 = PRIOR x))   WHERE rn = 1ORDER BY n_sec_code;

  
只需要把SQL中“n_sec_code” 換為你的用來匯總的列,“c_researcher_code”替換為需合并文本的列,“m_researcher_stock_rel”替換為你的表名

 

參考文章:


http://www.cnblogs.com/heekui/archive/2009/07/30/1535516.html
http://blog.csdn.net/catoop/article/details/8124561

 

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.