DB(SQL)
[SQL] 문자열 함수 - INSTR, SUBSTR
이나피스
2022. 3. 26. 18:46
반응형
INSTR
문자열에서 특정문자 위치를 찾아줌
인덱스 찾아주는 역할(1번부터 시작 CF.자바는 0번부터 시작)
반환타입 : NUMBER
INSTR(문자열, 특정문자, 찾을위치시작값(생략가능), 순번(생략가능))
- 순번
1 : 앞에서부터 순서 조회(생략시 기본값)
-1 : 뒤에서부터 순서 조회
SELECT INSTR('AABAACAABAAB','B')
FROM DUAL;--앞에서부터 첫번째에 위치하는 B의 위치값 출력
SELECT INSTR('AABAACAABAAB','B',1)
FROM DUAL;--앞에서부터 첫번째에 위치하는 B의 위치값 출력
SELECT INSTR('AABAACAABAAB','B',-1)
FROM DUAL;--뒤에서부터 첫번째에 위치하는 B의 위치값 출력
SELECT INSTR('AABAACAABAAB','B',-1,2)
FROM DUAL;--뒤에서부터 두번째에 위치하는 B의 위치값 출력
SELECT INSTR('AABAACAABAAB','B',1,2)
FROM DUAL;--앞에서부터 두번째에 위치하는 B의 위치값 출력
--EMAIL에서 @위치 찾기
SELECT EMAIL,INSTR(EMAIL,'@') "@의 위치"
FROM EMPLOYEE;
SUBSTR
문자열에서 특정문자열 추출
시작위치를 음수로 제시 가능(EX. -1일 경우 뒤에서부터 1번째위치의 문자부터 추출)
SUBSTR(문자열, 시작위치, 추출할문자개수(생략가능))
SELECT SUBSTR('HELLO ORACLE',-7,3)
FROM DUAL; --결과:OR
--주민등록번호에서 성별 부분을 추출하여 확인하기
SELECT SUBSTR (EMP_NO, 8,1) AS 성별
FROM EMPLOYEE;
--남자 사원 추출
SELECT *
FROM EMPLOYEE
WHERE SUBSTR(EMP_NO,8,1) IN('1','3');
--이메일에서 ID부분만 추출해보기
SELECT EMP_NAME, EMAIL, SUBSTR(EMAIL, 1, INSTR(EMAIL,'@')-1) AS ID
FROM EMPLOYEE;
--도메인만 추출
SELECT EMP_NAME, EMAIL, SUBSTR(EMAIL, INSTR(EMAIL,'@')+1) AS ID
FROM EMPLOYEE;
반응형