/ 문자 기준으로 몇번째 값 불러오기 0 1 991

by 김병훈 [2016.09.08 15:23:12]


 

DATA
========================
/161
/161/162
/190/191/192
/190/191/192/209
/190/191/192/209/205


기준이 되는 인쪽 문자 / 를 기준으로 

/190/191/192/209/205 인 경우

 첫번째값    두번째값   세번째값   네번째값   다섯번째값
 -------------------------------------------------------
      190         191        192        209          205
      

/190/191/192/209      인 경우

 첫번째값    두번째값   세번째값   네번째값   다섯번째값
 -------------------------------------------------------
      190         191        192        209        

와 같이 나타내려면 함수로 어떻게 구현해야 할까요? 

 

 

 

 

 

by 랑에1 [2016.09.08 15:46:20]
WITH T AS
(
SELECT '/161' data FROM DUAL UNION ALL 
SELECT '/161/162' FROM DUAL UNION ALL 
SELECT '/190/191/192' FROM DUAL UNION ALL 
SELECT '/190/191/192/209' FROM DUAL UNION ALL 
SELECT '/190/191/192/209/205' FROM DUAL
)

SELECT REGEXP_SUBSTR( data, '[^/]+',1,1 ) 첫번째값
     , REGEXP_SUBSTR( data, '[^/]+',1,2 ) 두번째값
     , REGEXP_SUBSTR( data, '[^/]+',1,3 ) 세번째값
     , REGEXP_SUBSTR( data, '[^/]+',1,4 ) 네번째값
     , REGEXP_SUBSTR( data, '[^/]+',1,5 ) 다섯번째값
FROM   T

 

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