oracle列合併的實現方法

2022-09-24 14:15:19 字數 928 閱讀 9622

一、oracle 10g以前使用wmsys.wm_concat:

wmsys.wm_concat將字段的值用","程式設計客棧來隔開。

select id,wm_concat(name) from tab_name group by id;

二、使用sys_connect_by_path

sys_connect_by_path(欄位名, 2個字段之間的連線符號),這裡的連線符號不要使用逗號,oracle會報錯,如果一定要用,可以使用replace替換一下,方法如下www.cppcns.com replace(欄位名,原字元,',')。這個函式使用之前必須先建立乙個樹,否則無用。

三、oracle 11g以後可以使用listagg

select listagtqgykg(id,',') within group (order by id) col_name from tab_name;

四、使用自定義函式:

create tqgykor replace function getrow(table1 varchar2 , ptdb1 varchar2) return varchar2 is

result varchar2(1000);

begin

for cur www.cppcns.comin (select audit_code from sys_audit_column t2 where table1 =

t2.table_name and ptdb1 = t2.ptdb_name) loop

result := result||cur.audit_code||',';

end loop;

result:=rtrim(result,',');

return(result);

end getrow;

本文標題: oracle列合併的實現方法

本文位址:

oracle 列值合併

參考 業務場景 t train 火車票訂單表 t trainpassenger 火車票乘客資訊表 一對多的關係 我們需要查訂單列表,其中乙個展示的列是乘客姓名 乙個訂單多個人時,名字用逗號隔開 並且可以通過乘客姓名模糊查詢訂單列表,如果不做列值合併,則會出現三條訂單記錄,而只有名字不同,這不是我們所...

python實現多列合併為一列的方法總結

方法 df column df column a df column b 缺點 某一列如果為空,另一列不為空,則合併結果是為空,所以在合併之前需要對na進行預處理,替換或者刪除。注意 如果某一列是非str型別的資料,那麼我們需要用到map str 將那一列資料型別做轉換 df newcolumn d...

ORACLE 交叉報表固定列實現方法

oracle 交叉報表固定列實現方法 需求 統計某些天內每個型別的數量,原資料 mctype 型別 dth,med,oth tday時間劃分 t1,t2,t3,t4 t10 原始data 如果dthind 1 那麼這條記錄型別就是dth型別,其他類推 iddthind medind othind 1...