Oracle에서는 Instr() 및 substr() 함수를 사용하여 문자열의 문자 일부를 가로챌 수 있습니다. 구문은 "SUBSTR('가로챌 문자열', 가로채기 시작 위치, INSTR('문자열이 될 문자열)입니다. 차단됨" ,'','검색 시작 위치','발생 횟수')-1) ".
이 튜토리얼의 운영 환경: Windows 7 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
oracle은 필드에서 문자열의 일부를 가로챕니다
Oracle의 Instr() 및 substr() 함수 사용:
Oracle에서는 instr 함수를 사용하여 특정 문자열을 판단하여 특정 문자열을 판단할 수 있습니다. 지정된 문자를 포함합니다.
구문은 다음과 같습니다.
instr(sourceString,destString,start,appearPosition). instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')
여기서
sourceString은 소스 문자열을 나타냅니다.
destString은 소스 문자열에서 찾을 하위 문자열을 나타냅니다.
start는 검색의 시작 위치를 나타냅니다. 매개변수 선택사항, 기본값은 1입니다.
appearPosition은 소스 문자에서 찾고자 하는 destString의 발생 횟수를 나타냅니다. 이 매개변수도 선택사항이며, 기본값은 1입니다. 음수인 경우 검색은 오른쪽에서 왼쪽으로 수행되지만 위치 데이터는 여전히 왼쪽에서 오른쪽으로 계산됩니다.
instr 함수의 경우 다음과 같이 자주 사용합니다. 문자열에서 지정된 하위 문자열의 위치를 찾습니다. 예:
SQL> select instr('yuechaotianyuechao','ao') position from dual; POSITION ---------- 6
7번째 문자부터 검색 시작
SQL> select instr('yuechaotianyuechao','ao', 7) position from dual; POSITION ---------- 17
첫 번째 문자부터 시작하여 하위 문자열이 두 번째로 나타나는 위치 검색
SQL> select instr('yuechaotianyuechao','ao', 1, 2) position from dual; POSITION ---------- 17
instr 함수의 경우 다음과 같이 자주 사용합니다. string 하위 문자열의 위치입니다. 예:
SQL> select instr('abcdefgh','de') position from dual; POSITION ---------- 4
1부터 d가 4위이므로 4가 반환됩니다.
SQL>select instr('abcdefghbc','bc',3) position from dual; POSITION ---------- 9
3번째 문자부터 세 번째 문자가 c이므로 3부터 시작하는 문자열에서 bc를 검색하면 9가 반환됩니다.
사용법 substr 함수는 문자열에서 지정된 시작 위치와 길이를 갖는 문자열을 얻는 것입니다. 기본값은 시작 위치부터 끝까지의 부분 문자열입니다.
substr( string, start_position, [ length ] ) substr('目标字符串',开始位置,长度)
예:
substr('This is a test', 6, 2) would return 'is' substr('This is a test', 6) would return 'is a test' substr('TechOnTheNet', -3, 3) would return 'Net' substr('TechOnTheNet', -6, 3) would return 'The'select substr('Thisisatest', -4, 2) value from dualSUBSTR() 함수
1. 용도: 지정된 문자 표현식 또는 메모 필드에서 하위 문자열을 반환합니다. 2. 문법 형식:
substr(string string, int a, int b); substr(string string, int a) ;
형식 1:
1. 문자열 가로채야 하는 문자열
2. a가 문자열의 시작 위치를 가로채기(참고: a가 0 또는 1인 경우 처음부터 시작 3. b 차단할 문자열의 길이
형식 2:
1. string 차단할 문자열
2. a는 a-번째 문자부터 시작하는 모든 후속 문자를 차단하는 것으로 이해될 수 있습니다. 끈.
oracle은 문자열C3411.907w15가 마침표 SUBSTR ('C3411.907w15', 0, INSTR ('C3411.907w15, '.', 1, 1) - 1)
SELECT SUBSTR ('C3411.907w15', 0, INSTR ('C3411.907w15, '.', 1, 1) - 1) FROM DUAL이전에 문자열 C3411을 가로챕니다.
C3411.907w15를 마침표 뒤의 문자열 907w15로 자릅니다. SUBSTR ('C3411.907w15', INSTR ('C3411.907w15', '.', 1, 1)+1)SELECT SUBSTR ('C3411.907w15', INSTR ('C3411.907w15', '.', 1, 1)+1)
FROM DUAL
원본 문자열:
원본 필드에 7개의 "_"가 있습니다. 이제 마지막 "_" 뒤의 문자열을 제거하고 싶습니다. 두 단계:
첫 번째 단계는 Instr() 함수를 통해 7번째 "_" 문자를 찾는 것입니다:
select instr('Qfang.com Group_Brokerage Division_South China District_Shenzhen Shihua_ Sales Department_Nanshan Qianhai District_Qianhai Central Area_Qianhai Fifth Branch' ,'_', 1, 7) fdisplayname from SHENZHENJM1222.B 또는:select instr('QFang.com Group_ Brokerage Division_South China District_Shenzhen Shihua_Sales Department_Nanshan Qianhai District_Qianhai Central Area_Qianhai Fifth Branch', '_',
-1, 1) fdisplayname FROM SHENZHENJM1222.B
둘 다 효과는 같습니다. 아래에서 -1은 시작 문자를 오른쪽부터 세는 것을 의미하고, 1은 첫 번째 "_"를 가져오는 것을 의미합니다.얻어진 결과는 다음과 같습니다. 그림에서:
2단계, substr() 함수를 전달하고 필수 필드를 제거합니다.select substr(
fdisplayname,instr(fdisplayname,'_',-1,1 )
+1) SHENZHENJM1222.B
fdisplayname의 fdisplayname: 필드 이름을 나타내며 메타스트링에 집중하겠습니다
+1+1은 대상 문자열 "_" 다음의 첫 번째 문자열을 가로채기 시작한다는 의미입니다. 다른 숫자의 상황을 살펴보겠습니다. substr(fdisplayname,instr(fdisplayname,'_',-1, 1)+1) SHENZHENJM1222.B 의 fdisplayname instr(fdisplayname,'_', -1, 1 ) 1의 의미는 다음과 같습니다. 추천 튜토리얼: "Oracle Tutorial"
위 내용은 Oracle에서 문자열의 일부 문자를 가로채는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!