이 형식이 "숫자-이름"인 문자열이 있습니다. REGEXP_SUBSTR을 사용하여 이름과 숫자에 각각 하나씩 두 개의 개별 열로 분할합니다.
SELECT
REGEXP_SUBSTR('123 - ABC','[^-]+',1,1) AS NUM,
REGEXP_SUBSTR('123 - ABC','[^-]+',1,2) AS NAME
from dual;
그러나 이름에 하이픈이 포함되어 있으면 작동하지 않습니다 (예 : ABC-Corp). 이름은 'ABC-Corp'대신 'ABC'처럼 표시됩니다. 첫 번째 hypen 앞의 모든 것을 무시하고 그 뒤에 모든 것을 포함하는 정규식 exp를 얻으려면 어떻게해야합니까?
첫 번째 발생시 문자열을 분할하려고합니다 ' - '
. 정규식이 아닌 문자열 함수로 효율적으로 수행 할 수있는 간단한 작업입니다.
select
substr(mycol, 1, instr(mycol, ' - ') - 1) num,
substr(mycol, instr(mycol, ' - ') + 3) name
from mytable
with mytable as (
select '123 - ABC' mycol from dual
union all select '123 - ABC - Corp' from dual
)
select
mycol,
substr(mycol, 1, instr(mycol, ' - ') - 1) num,
substr(mycol, instr(mycol, ' - ') + 3) name
from mytable
마이콜 | NUM | 이름 : --------------- | :-| : --------- 123-ABC | 123 | ABC 123-ABC-Corp | 123 | ABC-법인
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다