with vw_base as ( select '20240424' dt, '김철수' name from dual uni on all select '20240424' dt, '강영수' name from dual uni on all select '20240425' dt, '홍길동' name from dual ) , vw_ord as ( select dt, name, row_number() over(partition by dt order by name) ord from vw_base ) select dt , max(decode(ord, 1, name, '')) name1 , max(decode(ord, 2, name, '')) name2 from vw_ord group by dt order by dt
여러 컬럼이 아닌 하나의 컬럼에 나열해도 상관없다면 아래와 같이 하시면 됩니다.
with tbl as ( select '20240424' dt, '김철수' name from dual union all select '20240424' dt, '강영수' name from dual union all select '20240425' dt, '홍길동' name from dual ) select dt "DATE", listagg(name, ',') within group(order by dt) "NAME" from tbl group by dt ;