기존 오라클 쿼리는


SELECT    

    , LISTAGG(DECODE(SUBSTR(t1.execMm, lv, 1), '1', lv||'월'), '/') 

    WITHIN GROUP(ORDER BY lv) execMm

    , t1.id

    FROM   (

    , A.EXEC_MM AS execMm

    , A.id AS id

    FROM   A_TABLE A

    ) t1

, (SELECT LEVEL lv FROM DUAL CONNECT BY LEVEL <= 12)

   GROUP BY  t1.execMm, t1.RD



이렇게 되어있습니다.


하단에 (SELECT LEVEL lv FROM DUAL CONNECT BY LEVEL <= 12)이것과

상단에 LISTAGG를 쓴이유는


execMm라는 컬럼에 예를들어 110000000011라는 값이 있으면 1이 들어가있는 값에 월을 붙이고 구분자로 /를 써서


1월/2월/11월/12월 과 같이 뿌려주면서 12월까지 표현하기위해서 CONNECT BY를 써서 12까지 돌렸고 LASSAGG를 써서 단일행을 합쳤는데요.


MS-SQL에서는 저 두개가 안먹혀서 찾아보니 WITH AS로 CONNECT BY로 대체하고 LISTAGG는 STUFF로 써서 하라는데 제 부족한 실력으로는 잘 안되네요 ㅠ 혹시 죄송하지만 방법이 없을까요?