MS-SQL

SQL에서 행을 열로 바꿔서 출력 (recursive call)

하이안 2010. 2. 12. 09:27
with x (deptno, cnt, list, empno, len)
as (
    select deptno
        , count(*) over (partition by deptno)
        , cast(ename as varchar(100))
        , empno
        , 1
    from emp

    union all

    select x.deptno, x.cnt, x.list ',' e.ename, e.empno, x.len+1
    from emp e, x --> recursive call
    where e.deptno = x.deptno and e.empno > x. empno
)

select deptno,list
from x
where len = cnt ;