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() 버튼을 클릭하여 작성 하시면 됩니다.