我有一個名爲虛擬表,如下圖所示:Concating行的SQL
No. Name
1 ABC
2 NMD
2 SDSDS
1 23ererer
現在我想給定號碼
對於離於Concat的所有Name
列。說號是1
我想要ABC23ererer
作爲我的輸出
這是在不使用PL-SQL的情況下在ORACLE(SQL)中完成的。
這怎麼辦?
我有一個名爲虛擬表,如下圖所示:Concating行的SQL
No. Name
1 ABC
2 NMD
2 SDSDS
1 23ererer
現在我想給定號碼
對於離於Concat的所有Name
列。說號是1
我想要ABC23ererer
作爲我的輸出
這是在不使用PL-SQL的情況下在ORACLE(SQL)中完成的。
這怎麼辦?
這可能幫助...
select NO,
listagg(NAME, ',') within group (order by NAME) as name
from TableName
group by NO
否則檢查this
試試這個:
SELECT Number+' '+ Name FROM table_name
你看他給的例子嗎? – Barmar
這不是有效的SQL(既不是在Oracle中,也不是在標準SQL中) –
LISTAGG不Oracle10g的支持。如果你有10g我認爲下面的查詢會幫助你。
select No, rtrim(Name,',') Name
from (select No
, Name, rn
from yourtable
model
partition by (No)
dimension by (row_number() over
(partition by No order by Name) rn
)
measures (cast(Name as varchar2(40)) Name)
rules
(Name[any] order by rn desc = Name[cv()]||''||Name[cv()+1]
)
)
where rn = 1
order by NO
自9i [你可以問這個問題'tom'stragg'(http://asktom.oracle.com/pls/apex/f?p=100:11:0) :::: P11_QUESTION_ID:15637744429336) – haki
SELECT "No.", LISTAGG(Name, ',') WITHIN GROUP (ORDER BY "No.") AS Name
FROM TableName
GROUP BY "No.";
你想Concat的名稱列的所有名稱相同數量? – kevinm
也許http://stackoverflow.com/questions/1120706/is-there-an-oracle-sql-query-that-aggregates-multiple-rows-into-one-row可以給一些提示。 – OcuS
你正在使用哪個版本? –