oracle如何带符号求和,ORACLE 实现行转列(字符串求和)
使用關系型數據的實際項目中,難以免變動增長字段,有時為了方便,不想加字段,把多個值存儲一個字段中,用逗號或其余分隔符進行分隔;存儲解決了,可是展現有時就比較麻煩了,好比存儲的是編碼,如今要依次解析成名稱。數據庫
oracle提供很是簡單的方式來解決。編程
一、使用wm_concat(field_name)oracle
在oracle中有一個wmsys用戶,這個用戶和sys,system等用戶同樣,是oracle安裝的時候就建立的,主要負責oracle平常工做的管理(WM:work manager),wm開頭的函數是這個用戶下的函數。函數
舉例:select wm_concat(name) as name from user;編碼
二、使用 listagg 函數,但若是是oracle11g,使用listagg效率更高,更強大,官方也更推薦這種寫法。it
舉例:select listagg(name, ',') within group( order by name) as name from user;效率
實際狀況舉例:如今數據庫中存儲了編碼,是用逗號分隔的,前臺須要顯示名稱,也用逗號分隔;select
SELECT wm_concat(ITEM_NAME) FROM SYS_DICT_ITEM
WHERE GROUP_ID = '0001'
AND INSTR('FUNCTION,ACTION,FOLDER',ITEM_CODE) > 0;數據
運行結果:文件夾菜單,功能菜單,動做項目
結論:能在數據庫層解決問題,就不要在代碼層解決,能一條語句解決,就盡可能不要使用過程或函數解決。不斷發掘oracle數據庫的強大之處,參考閱讀《oracel編程藝術》。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的oracle如何带符号求和,ORACLE 实现行转列(字符串求和)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zencart的首页php 301,Ze
- 下一篇: oracle表对比同步,Oracle表双