多行合并為一行的sql語句

多行合并為一行的sql語句

ID:8834254

大?。?5.00 KB

頁數(shù):14頁

時間:2018-04-09

多行合并為一行的sql語句_第1頁
多行合并為一行的sql語句_第2頁
多行合并為一行的sql語句_第3頁
多行合并為一行的sql語句_第4頁
多行合并為一行的sql語句_第5頁
資源描述:

《多行合并為一行的sql語句》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、多行合并為一行的SQL語句目錄2例一12例二22例三32例四52例五6例六如何將多行數(shù)據(jù)合并成一行多列7例七C#122例一表數(shù)據(jù):testno??????q------------1????n11????n21????n31????n41????n53????t13????t23????t33????t43????t53????t62????m1語句:withtestas(SELECT1ASNo,'N1'ASqFROMDualUNIONALLSELECT1ASNo,'N2'ASqFROMDualUNIONALLSELECT1ASNo,'N3'AS

2、qFROMDualUNIONALLSELECT1ASNo,'N4'ASqFROMDualUNIONALLSELECT1ASNo,'N5'ASqFROMDualUNIONALLSELECT3ASNo,'T1'ASqFROMDualUNIONALLSELECT3ASNo,'T2'ASqFROMDualUNIONALLSELECT3ASNo,'T3'ASqFROMDualUNIONALLSELECT3ASNo,'T4'ASqFROMDualUNIONALLSELECT3ASNo,'T5'ASqFROMDualUNIONALLSELECT3ASNo,'T

3、6'ASqFROMDualUNIONALLSELECT2ASNo,'M1'ASqFROMDual)SELECTNo,Substr(Jg,2,Length(Jg))ASJg?FROM(SELECTNo,MAX(Sys_Connect_By_Path(q,','))ASJg?????????FROM(SELECTNo,??????????????????????q,??????????????????????Row_Number()Over(PARTITIONBYNoORDERBYNo,q)Rn?????????????????FROMTest)??

4、??????STARTWITHRn=1???????CONNECTBYRn-1=PRIORRn??????????????ANDNo=No????????GROUPBYNo)譚工前面那個示例"CONNECTBYRn-1=PRIORRnANDNo=No"也應(yīng)改成"CONNECTBYNo

5、

6、'

7、'

8、

9、(Rn-1)=PRIOR(NO

10、

11、'

12、'

13、

14、Rn)"結(jié)果才對。另外這個SQL只適合在小數(shù)據(jù)集或索引結(jié)果中進(jìn)行處理,不然要使用全表掃描效率不高。輸出:1?,N1,N2,N3,N4,N52?,M13?,T1,T2,T3,T4,T5,T62例二另解:人員所屬部

15、門:第一個部門為缺省部門SELECT人員編號,??????MIN(姓名)AS姓名,??????Substr(MAX(To_Char(Length(部門),'99999999')

16、

17、部門),11,2000)AS部門?FROM(SELECT人員編號,姓名,Sys_Connect_By_Path(部門,',')AS部門?????????FROM(SELECT姓名,??????????????????????部門,??????????????????????缺省,??????????????????????人員編號,???????????????????

18、???Row_Number()Over(PARTITIONBY姓名ORDERBY人員編號,缺省DESC)Rn?????????????????FROM(SELECTc.姓名,??????????????????????????????b.名稱AS部門,??????????????????????????????a.缺省,??????????????????????????????c.編號AS人員編號,??????????????????????????????b.編碼AS部門編碼?????????????????????????FROM部門人員a

19、,部門表b,人員表c????????????????????????WHEREa.部門id=b.Id??????????????????????????ANDa.人員id=c.Id???????????????????????)t)????????STARTWITHRn=1???????CONNECTBY(人員編號

20、

21、(Rn-1))=PRIOR(人員編號

22、

23、Rn))?GROUPBY人員編號?ORDERBY部門CONNECTBY(人員編號

24、

25、(Rn-1))=PRIOR(人員編號

26、

27、Rn)這一句整很久才整出來,為了避免不等長的編號,下面的改進(jìn)也許更合

28、適:CONNECTBY(人員編號

29、

30、'

31、'

32、

33、(Rn-1))=PRIOR(人員編號

34、

35、'

36、'

37、

38、Rn)這樣就不會出現(xiàn)錯亂了.2例三如何將

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。