一、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...