Oracle中的wmsys.wm_concat

Oracle中的wmsys.wm_concat主要實現行轉列功能(說白了就是將查詢的某一列值使用逗號進行隔開拼接,成為一條數據)。

wmsys.wm_concat除了單獨使用外還可以和over函數結合使用。

開始看看具體使用方法:

select t.rank, t.Name from t_menu_item t;
?? ?rank Name
????10 CLARK
????10 KING
????10 MILLER
????20 ADAMS
????20 FORD
????20 JONES
????20 SCOTT
????20 SMITH
????30 ALLEN
????30 BLAKE
????30 JAMES
????30 MARTIN
????30 TURNER
????30 WARD

上邊的查詢語句返回的結果可以清晰看到rank存在重復的,一個相同的rank對應多個Name,如果我們想把某一個Rank的所有Name以","隔開,怎么做的,當然可以自定義函數,

別急,Oracle 10g開始提供了這個wmsys.wm_concat,它可以幫助我們把行的值以逗號隔開,看看怎么來實現.

一。直接使用wmsys.wm_concat

select t.rank, WMSYS.WM_CONCAT(t.Name) TIME From t_menu_item t GROUP BY t.rank;

通過Group by進行分組,查詢每類Rank對應的Name的值,看看查詢的結果.

??? 10 CLARK, KING, MILLER
????20 ADAMS, FORD, JONES, SCOTT, SMITH
????30 ALLEN, BLAKE, JAMES, MARTIN, TURNER, WARD?

是不是很神奇,rank已經分類,并且他的Name已經用逗號進行隔開。

二.wmsys.wm_concat和over的結合使用

over函數:?over函數指定了分析函數工作的數據窗口的大小,這個數據窗口大小可能會隨著行的變化而變化。
例如:?
over(order by salary)按照salary排序進行累計,order by是個默認的開窗函數;
?over(partition by deptno) 按照部門分區;?
over(order by salary?range between 50 preceding and 150 following)每行對應的數據窗口是之前行幅度值不超過50,之后行幅度值不超過150的數據記錄 ;
over(order by salary rows between 50 perceding and 150 following)前50行,后150行;?
over(order by salary rows between unbounded preceding and unbounded following)所有行 ;
over(order by salary range between unbounded preceding and unbounded following)所有行。
看看wmsys.wm_concathe和over的結合例子:
select id,wmsys.wm_concat(name) over (order by id,name) name from idtable;
根據id,name進行排序累計,看看輸出的結果.
       id  name
??? ? ??10 ab
????????10 ab,bc
????????10 ab,bc,cd
????????20 ab,bc,cd,hi
????????20 ab,bc,cd,hi,ij
????????20 ab,bc,cd,hi,ij,mnke
可以清晰的看到id為10的name列的值是從ab依次疊加到最后ab,bc,cd(當然這幾個值肯定是id為10對應的值),id為20的name列的值是從ab,bc,cd,hi(之所以不是從ab開始是因為當前order by的
還有name列,所以需要繼續向下進行)一直到ab,bc,cd,hi,ij,mnke.
 
select id,wmsys.wm_concat(name) over (partition by id) name from idtable;
這個例子僅僅是根據id進行排序(over (order by ename)如果沒有order by 子句,求和就不是“連續”的,這個就是和上個實例的最大區別,沒有連續)。
?? ? ? ?ID NAME

????????10 ab,bc,cd
????????10 ab,bc,cd
????????10 ab,bc,cd
????????20 hi,ij,mn
????????20 hi,ij,mn
????????20 hi,ij,mn
可以看到僅僅是根據id進行排序的查詢。
 select id,wmsys.wm_concat(name) over (partition by id,name) name from idtable;
????????ID NAME
????????10 ab
????????10 bc
????????10 cd
????????20 hi
????????20 ij
????????20 mn
可以看到,這里和上個實例的區別在于Name列沒有疊加,因為在over 中加入了name
 
 

轉載于:https://www.cnblogs.com/ListenFly/archive/2011/10/17/2215863.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275247.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Github 王炸功能!Copilot 替代打工人編程?

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以加我微信 ruochuan12 參與,已進行三個月了,大家一起交流學習,共同進步。大家好,我是皮湯。最近組里在討論一個有意思的工具 Github Copilot&#xff…

ux和ui_糟糕的UI與UX番茄醬模因

ux和uiAt face value, this meme appears to be a quick and easy tool for educating the general public about what the differences are between UI and UX. You might look at the attractive glass bottle labeled “UI” and understand that UI might have to do more …

Linux中的wheel用戶組是什么?

在Linux中wheel組就類似于一個管理員的組。 通常在Linux下,即使我們有系統管理員root的權限,也不推薦用root用戶登錄。一般情況下用普通用戶登錄就可以了,在需要root權限執行一些操作時,再su登錄成為root用戶。但是,任…

ElementUI 組件庫 md-loader 的解析和優化

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以加我微信 ruochuan12 參與,已進行三個月了,大家一起交流學習,共同進步。背景相信很多同學在學習 webpack 的時候,對 loader 的概念應該有所了解&…

一個html5流星雨源碼

流星會隨著鼠標的方向劃過&#xff0c;按緊鼠標左鍵可以增長流星的尾巴。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang"zh-CN"> <head> <title>流星雨<…

csdn 用戶 螞蟻翹大象_用戶界面設計師房間里的大象

csdn 用戶 螞蟻翹大象Once upon a time, an educated eye detected a new trend in UI designs, particularly, in Dribbble. It was a conceptual proposition, not an actual design for a customer or an app. Trying to explain the characteristics of this new trend, a …

面試官問發布訂閱模式是在問什么?

大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以加我微信 ruochuan12 參與&#xff0c;已進行了三個多月&#xff0c;大家一起交流學習&#xff0c;共同進步。本文來自 simonezhou 小姐姐投稿的第八期筆記。面試官常問發布訂閱、觀察者模式&#…

linux服務器內存、根目錄使用率、某進程的監控告警腳本

腳本內容如下 #!/bin/bash#磁盤超過百分之80發送郵件告警DISK_USEDdf -T |sed -n "2p" |awk {print ($4/$3)*100}DISK_percentage80if [ expr "$DISK_USED > $DISK_percentage" ]thenecho "$HOSTNAME服務器當前硬盤使用率為$DISK_USED%" | ma…

figma下載_不用擔心Figma中的間距

figma下載重點 (Top highlight)I spend way too much time caring about spacing when designing interfaces and building design systems. You are probably no stranger to the constant 1 px and 8 px nudging, continuous checking of the bottom or in-between space for…

【建議收藏】面試官賊喜歡問的 32+ vue 修飾符,你掌握幾種啦?

大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以加我微信 ruochuan12 參與&#xff0c;已進行了三個多月&#xff0c;大家一起交流學習&#xff0c;共同進步。前言vue簡潔好用體現在很多個地方&#xff0c;比如其內置了32修飾符&#xff0c;可以很…

知識管理系統Data Solution研發日記之一 場景設計與需求列出

在平時開發的過程中&#xff0c;經常會查找一些資料&#xff0c;從網上下載一些網頁&#xff0c;壓縮格式文件到自己的電腦中&#xff0c;然后閱讀。程序有別于其他行業的一個特征是&#xff0c;所有的資料&#xff0c;數據&#xff0c;壓縮文件&#xff0c;只用于產生可以工作…

系列TCP/IP協議-動態IP選路協議(008)

一、引言 前一章已經說過了IP數據包是如何分發的。為啥這一章還要說這個問題&#xff1f;在網絡很小、只有單個連接點、沒有多余的路由的時候&#xff0c;使用靜態選路是可以的。但是一旦網絡變大一點就會出現各種問題。在大網絡中的網絡選路將在該節說明。 ??動態選路協議用…

shields 徽標_我們如何準確地記住著名徽標的特征和顏色?

shields 徽標The logos of global corporations like Apple, Starbucks, Adidas, and IKEA are designed to create instant brand associations in the minds of billions who see them every day. But how accurately can we remember the features and colors of these famo…

面了三次字節,他的一些感悟

大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以加我微信 ruochuan12 參與&#xff0c;已進行了三個多月&#xff0c;大家一起交流學習&#xff0c;共同進步。今天分享一篇小K投稿的字節面試記錄&#xff0c;這是他第三次面字節了&#xff0c;之前…

JavaScript數組內置排序函數

javascript內置的sort函數是多種排序算法的集合 JavaScript實現多維數組、對象數組排序&#xff0c;其實用的就是原生的sort()方法&#xff0c;用于對數組的元素進行排序。 sort() 方法用于對數組的元素進行排序。語法如下&#xff1a; ArrayObject.sort(order); 測試A&#xf…

解決Wireshark安裝Npcap組件失敗

2019獨角獸企業重金招聘Python工程師標準>>> 解決Wireshark安裝Npcap組件失敗 從Wireshark 3.0開始&#xff0c;Npcap取代Winpcap組件&#xff0c;成為Wireshark默認的網卡核心驅動。由于該組件屬于驅動程序&#xff0c;所以安裝時候容易被殺毒/防火墻軟件攔截&…

adobe清理工具_Adobe終于通過其新的漸變工具實現了這一點-UX評論

adobe清理工具的Photoshop (Photoshop) UX:用戶體驗&#xff1a; At first glance, the UX looks okay; it’s pretty clear. The user gets to know how to use this tool right away. The color palette is located above, and the gradient down below. The diamond betwee…

GMF學習系列(二) 一些知識點(續2)

8.插件的國際化&#xff0c;可以參考nwpu.cdcsp.sbpel.diagram.part中messages.java的做法。 9.Text自動提示功能 import org.eclipse.jface.bindings.keys.KeyStroke; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.fieldassist.AutoCompleteField; im…

新手向:前端程序員必學基本技能——調試JS代碼

1前言大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以加我微信 ruochuan12 參與&#xff0c;已進行三個月了&#xff0c;大家一起交流學習&#xff0c;共同進步。想學源碼&#xff0c;極力推薦之前我寫的《學習源碼整體架構系列》 包含jQuery、un…

iOS開發ApplePay的介紹與實現

1、Apple Pay的介紹 Apple Pay官方1.1 Apple Pay概念 Apple Pay&#xff0c;簡單來說, 就是一種移動支付方式。通過Touch ID/ Passcode&#xff0c;用戶可使用存儲在iPhone 6, 6p等之后的新設備上的信用卡和借記卡支付證書來授權支付&#xff1b; 它是蘋果公司在2014蘋果秋季新…