第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在不創(chuàng)建存儲過程的情況下,如何在Oracle中將多行串聯(lián)在一起?

在不創(chuàng)建存儲過程的情況下,如何在Oracle中將多行串聯(lián)在一起?

波斯汪 2019-11-30 13:36:38
如何在不創(chuàng)建存儲過程的情況下在oracle中實(shí)現(xiàn)以下目標(biāo)?資料集:question_id    element_id1              71              82              93              103              113              12所需結(jié)果:question_id    element_id1              7,82              93              10,11,12
查看完整描述

3 回答

?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊

有很多方法可以進(jìn)行字符串聚合,但是最簡單的方法是用戶定義函數(shù)。 嘗試使用不需要功能的方法。 注意,沒有該功能沒有簡單的方法。


這是沒有自定義函數(shù)的最短路由:(它使用ROW_NUMBER()和SYS_CONNECT_BY_PATH函數(shù))


SELECT questionid,

       LTRIM(MAX(SYS_CONNECT_BY_PATH(elementid,','))

       KEEP (DENSE_RANK LAST ORDER BY curr),',') AS elements

FROM   (SELECT questionid,

               elementid,

               ROW_NUMBER() OVER (PARTITION BY questionid ORDER BY elementid) AS curr,

               ROW_NUMBER() OVER (PARTITION BY questionid ORDER BY elementid) -1 AS prev

        FROM   emp)

GROUP BY questionid

CONNECT BY prev = PRIOR curr AND questionid = PRIOR questionid

START WITH curr = 1;


查看完整回答
反對 回復(fù) 2019-11-30
?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

在Oracle 11gR2中,LISTAGG子句可以解決問題:


SELECT question_id,

       LISTAGG(element_id, ',') WITHIN GROUP (ORDER BY element_id)

FROM YOUR_TABLE

GROUP BY question_id;

當(dāng)心結(jié)果字符串是否太大(例如,對于VARCHAR2,超過4000個(gè)字符):從版本12cR2開始,我們可以使用ON OVERFLOW TRUNCATE / ERROR來處理此問題。


查看完整回答
反對 回復(fù) 2019-11-30
  • 3 回答
  • 0 關(guān)注
  • 988 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號