關於oracle函式listagg的使用說明

2021-07-25 07:09:38 字數 1122 閱讀 5896

做專案的過程中遇到過乙個這樣的需求,在「使用者查詢」前台加乙個字段「使用者角色」,要將使用者的所有角色查詢出來放到乙個欄位中,角色之間用「,」分隔。

發現乙個辦法是使用oracle的listagg方法。

with tmp as

(select tu.username, te.emp_name, te.emp_duty_name, tr.role_name

from ts_user tu,

ts_user_role tur,

ts_role tr,

tm_department td,

tm_employee te

where tu.user_id = tur.user_id

and tu.emp_id = te.emp_id

and tur.role_id = tr.role_id

and tu.dept_id = td.dept_id

and td.dept_code = '755y'

order by tu.username asc)

select username 使用者名稱,

emp_name 員工姓名,

emp_duty_name 職位,

listagg(role_name, ',') within group(order by role_name) 使用者角色

from tmp

group by username, emp_name, emp_duty_name;

查詢結果:

id使用者名稱

使用者姓名

職位角色

1162

162保潔員

子系統管理員,排程使用者

2195

195運作司機

總部質量管理員,普通使用者

3202

202員工關係中級專員ⅱ

地區質量管理員

47310

**質檢管理工程師

地區質量界定員

5124915

**排程經理

分點部使用者

6592884

**浩網路規劃初級專員ⅰ

分點部使用者,地區質量界定員,地區質量管理員,普通使用者

oracle函式 關於日期

日期常用函式 add months,last day,next day,months between,new time,round 函式用法 add months d,n 時間點d加上n個月 示例 select sysdate,add months sysdate,1 from dual 注 sys...

關於oracle 函式的Deterministic

在建立函式索引的時候,自定義的函式需要加deterministic 確定性函式的效能好處是如果使用相同的輸入呼叫函式兩次,oracle可以記住第乙個呼叫的結果因此避免在第二次執行時再次呼叫。但是該功能直到10g release 2才被真正實施。環境11g 測試1 create or replace ...

關於Oracle取整的函式

關於oracle取整的函式分別有以下幾種 1.取整 大 select ceil 1.001 value from dual 向大的進製 ceil 0.12 02.取整 小 select floor 1.001 value from dual 向小的進製 floor 0.12 13.取整 擷取 sel...