如果是數字型的可直接用sum等函數再加上group by就可以實現;但字符串不行;需用到函數 WMSYS.WM_CONCAT 就可以了。
方法:如:一張組織表,一張用戶表,一張組織和用戶的關聯表;最後要得到結果:一個人員一條記錄並且如果此人在多部門的信息在最後串接起來,如想得到結果:
張三 部門1,部門2,部門3
而非:
張三 部門1;
張三 部門2;
張三 部門3;
先通過組織和用戶表及關聯關系表,組織一張新表:用戶,組織,或加一個id,
最後再通過此表做group,參考如下:
select tt.uname,wmsys.wm_concat(tt.oname) from (select u.uname,o.oname from usertable u,orup o, uo t where o.id = t.oid and u.id = t.uid) tt group by uname;
這樣查詢出來的結果:
張三 部門1,部門2,部門3