다음 열거 형 중 하나에 15-JUL-16,20-JUL-16,20-JUL-16,30-JUL-16
이 있습니다.SQL Orcle : Regexp_substr
SUBSTR(REGEXP_SUBSTR(base.systemdate, '.+,'), 1, 9)
을 사용하여 표현식에서 15-JUL-16
(첫 번째 쉼표까지의 표현식)을 얻었습니다.
그러나 나는 지옥을 위해 30-JUL-16
(마지막 쉼표 이후의 마지막 표현)을 얻는 방법을 알아낼 수 없습니다.
REGEXP_SUBSTR
을 사용하는 방법이 있습니까? 그리고 우리가 그곳에 있기 때문에.
REGEXP_SUBSTR
을 사용하여 쉼표없이 15-JUL-16
을 얻는 깔끔한 방법이 있습니까? 쉼표를 없애기 위해 두 번째 SUBSTR을 사용하기 때문에 데이터 형식과 호환되도록 할 수 있습니다. (일반적으로 정규 표현식)
SELECT REGEXP_SUBSTR(base.systemdate, '[^,]+$')
오라클 "욕심"입니다
쉼표로 구분 된 항목으로 데이터를 저장하지 마십시오. 열/행마다 하나의 값이 있습니다. – jarlh
쉼표로 구분 된 문자열을 분할하려고합니다. 이 질문은 여러 번 묻고 대답했습니다. "google for Oracle split csv"등입니다. – mathguy
제안에 감사드립니다. 그러나 데이터웨어 하우스에 데이터가 저장되는 방식을 제어 할 수 없습니다. 나는 단지 내가 얻는 것만으로 일한다. 하지만 내 질문을 반복하십시오. SUBSTR (REGEXP_SUBSTR (base.systemdate, '. +,'), 1, 9)을 재 작성하여 추가 SUBSTR없이 REGEXP_SUBSTR 만 사용하여 콤마없이 첫 번째 날짜를 가져올 수 있습니까? –