4 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊
NVL2(expr1,expr2,expr3) 功能:如果參數(shù)表達(dá)式expr1值為NULL,則NVL2()函數(shù)返回參數(shù)表達(dá)式expr3的值;如果參數(shù)表達(dá)式expr1值不為NULL,則NVL2()函數(shù)返回參數(shù)表達(dá)式expr2的值。NVL( string1, replace_with) 功能:如果string1為NULL,則NVL函數(shù)返回replace_with的值,否則返回string1的值,如果兩個(gè)參數(shù)都為NULL ,則返回NULL。

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

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
select wm_concat(name) name from user;--10g寫(xiě)法
select listagg(name,',') within group (order by name) name from user;--11g寫(xiě)法

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
方法一,使用connect by +sys_connect_by_path :
--測(cè)試數(shù)據(jù)
create table test(col varchar2(10));
insert into test values('a');
insert into test values('b');
insert into test values('c');
--SQL語(yǔ)句:
select ltrim(sys_connect_by_path(col, ','), ',')
from (select col, row_number() over(order by rownum) rn from test t)
where connect_by_isleaf = 1
start with rn = 1
connect by rn = prior rn + 1;
方法二,使用xmltype:
select dbms_lob.substr(rtrim(xmlagg(xmlparse(content col || ',' wellformed))
.getclobval(),
','),
4000,
1)
from test;
另外在10,11版本中也不建議使用wm_concat,這個(gè)函數(shù)屬于非公開(kāi)函數(shù),在12c版本中已經(jīng)失效;
- 4 回答
- 0 關(guān)注
- 1719 瀏覽
添加回答
舉報(bào)