ORACLE -> MYSQL 변환입니다. 0 5 1,674

by 방랑자 [MySQL] [2023.05.17 14:40:18]


ORACLE )
SELECT REGEXP_SUBSTR('20230517,20230101', '[^,]+', 1, LEVEL) ALCN_DT FROM DUAL
                    CONNECT BY REGEXP_SUBSTR('20230517,20230101', '[^,]+', 1, LEVEL) IS NOT NULL ;

==> 20230517

       20230101

위와 같이 나오는 쿼리를 MYSQL로 구현하고 싶은데 .. 잘안되고 있어서 문의드립니다.

 

감사합니다. ㅠ

by 마농 [2023.05.17 14:46:55]

1. MySQL 버전은 어떻게 되나요?
2. 자리수는 고정인가요? 날짜 8자리?
3. 개수는 최대 몇개인가요?


by 방랑자 [2023.05.17 14:49:29]

1. 버전입니다.

mysql  Ver 15.1 Distrib 10.11.2-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

2. 자리수는 8자리씩 옵니다. 고정입니다.

3. 개수는 최대 31개 입니다.

감사합니다.


by 방랑자 [2023.05.17 14:53:00]

날짜를 여러개 넣어서 프로시져를 돌리기 위함입니다.
최소1개 ~ 최대31개 입니다.

ORACLE 
 

 BEGIN
        FOR FOO IN (SELECT REGEXP_SUBSTR('8자리 날짜들....', '[^,]+', 1, LEVEL) ALCN_DT FROM DUAL
                    CONNECT BY REGEXP_SUBSTR(8자리 날짜들...., '[^,]+', 1, LEVEL) IS NOT NULL)
        LOOP
            v_alcn_dt := FOO.ALCN_DT;
           
            작업프로시져(v_alcn_dt);

         END LOOP;


by 마농 [2023.05.17 15:03:01]
SELECT v
     , seq
     , SUBSTR(v, seq * 9 - 8, 8) dt
  FROM (SELECT '20230517,20230101' v) a
     , seq_1_to_31 c
 WHERE seq <= (LENGTH(v) + 1) / 9
;

 


by 방랑자 [2023.05.17 15:04:44]

정말 최고이십니다. 

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