안녕하세요
컬럼에 요일값이 : 135
: 1234
표시 : 일,화,목
: 일,월,화,수
이렇게 표시 하고 싶은데
고수님들께 부탁드립니다
컬럼값이 DATE로 변환가능하면 TO_CHAR( 날자컬럼, 'DAY' )
아래처럼 해봤는데 마지막 콤마 제거가 잘 안되네요..
select translate(regexp_replace('1234', '(.)', '\1,'), 'x1234567', 'x일월화수목금토') from dual
1-> 요일구분값(일요일) 입니다
요일체계가 1은 무조건 일요일 인가요?
regexp_replace('1234','(.)','.\1',2)
--start posistion 추가
감사합니다
WITH t AS
(
SELECT '135' dy FROM dual
UNION ALL SELECT '1234' FROM dual
)
SELECT dy
, REGEXP_REPLACE(
TRANSLATE(dy, '1234567', '일월화수목금토')
, '(.)', ',\1', 2) x
FROM t
;
마농님 정규식 패턴에서
'(.)' 과 ',\1' 에 대해 설명 가능하실까요?
'(..)' ',\2' 로 패턴과 바꿔치기할 문자열 값을 다르게 변경해 가며 파악해 보고 있는데..패턴의 의미를 잘 모르겠네요..ㅠㅠ
매번 너무 감사드립니다~
To. 동동동.
. 은 모든 문자에 대응됩니다.
괄호는 묶음의 의미입니다.
뒤에 \1 은 앞의 패턴 중 첫번째 괄호문자를 가르킵니다.
즉 1글자 짜리 모든 문자를 해당 문자가 포함되어 앞에 컴마가 붙는 문자로 교체한다는 의미
-- 사용 예 --
WITH t AS
(
SELECT '01012345678' tel FROM dual
)
SELECT tel
, REGEXP_REPLACE(tel, '(...)(....)(....)', '\1-\2-\3') tel_1
, REGEXP_REPLACE(tel, '(.{3})(.{4})(.{4})', '\1-\2-\3') tel_2
FROM t
;
마농님 설명 정말 감사드립니다..^^