Wednesday, April 2, 2014

Oracle aggregation: Listagg

SQL>  SELECT deptno,
       listagg (ename, ',') WITHIN GROUP (ORDER BY ename)
        enames
FROM emp
GROUP BY deptno
/
    DEPTNO ENAMES                                            
---------- --------------------------------------------------
        10 CLARK,KING,MILLER                                 
        20 ADAMS,FORD,JONES,SCOTT,SMITH                      
        30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD     
Output table into csv format
spool dba_users.csv
set heading off
set wrap off
SET MARKUP HTML PREFORMAT ON
set colsep ,
SET LINESIZE 900
select LTRIM(rtrim(USERNAME)),rtrim(ltrim(USER_ID)),rtrim(ACCOUNT_STATUS),trim(PROFILE) 
   from dba_users where ACCOUNT_STATUS like 'EXP%';
spool off
exit

No comments:

Post a Comment