각 행에 null을 넣을수 있는 함수가 따로 있을까요? 오라클SQL입니다. 0 3 3,611

by oradb [SQL Query] oracle sql [2023.03.28 09:41:32]


select a, 시작, 종료 from tab1; 

A 시작 종료
aa 2016 2019
aa 2019 2021
aa 2022 2023

 

위 데이터를 아래와 같이 변경할수 있는 함수가 따로 있을까요?

A 시작 종료
aa 2016  
aa 2019 2019
aa 2022 2021
aa   2023
by 우리집아찌 [2023.03.28 13:17:32]
-- 함수는 특별히 없어보입니다..
-- sql로 풀자면 ( 손으로 옮겨서 오타 있을수 있어요)


select t.a , t.시작
        , lag(종료) over(partition by a order by 시작) 종료
   from ( select * from tbl1
             union all
             select a , '' , '' from tbl goup by a
          ) t
  order by a , 시작

 


by oradb [2023.03.28 13:41:11]

감사합니다. 덕분에 막혔던게 풀렸습니다! :)


by 마농 [2023.03.30 11:04:11]
WITH tab1 AS
(
SELECT 'aa' a, 2016 시작, 2019 종료 FROM dual
UNION ALL SELECT 'aa', 2019, 2021 FROM dual
UNION ALL SELECT 'aa', 2022, 2023 FROM dual
)
SELECT a
     , 시작
     , LAG(종료) OVER(PARTITION BY a ORDER BY 시작, 종료) 종료
  FROM tab1
 GROUP BY a, ROLLUP((시작, 종료))
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입