Handy Regexp trick for Listaggs
I use the listagg function to generate a comma separated list of employees who work in department 10 from the EMP table.
To make the list more readable, I want to substitute the last comma with the word and.
with q as ( select listagg(ename,', ') within group (order by 1) ret from emp where deptno = 10 ) select regexp_replace(ret,',',' and',instr(ret,',',-1)) ret from q; SQL> RET -------------------------------------------------------------------------------- CLARK, KING and MILLER