做專案的過程中遇到過乙個這樣的需求,在「使用者查詢」前台加乙個字段「使用者角色」,要將使用者的所有角色查詢出來放到乙個欄位中,角色之間用「,」分隔。
發現乙個辦法是使用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...