꺄르륵
[Oracle SQL Developer] 기초 VI - 문자열 함수 본문
1. 문자열 함수
: 문자열을 서로 비교할때 사용된다.
1.1. INITCAP(c), LOWER(c), UPPER(c)
: 'c'에 저장된 문자열 자료의 대소 문자를 변환시킬때 사용한다.
1.1.1. INITCAP(c) : 단어의 첫 글자만 대문자로 변환한다.
예)
SELECT INITCAP('emAil') FROM DUAL;
-- 출력 : Email
1.1.2. LOWER(c) : 모든 문자를 소문자로 변환한다.
예)
SELECT LOWER('EMAIL') FROM DUAL;
-- 출력 : email
1.1.3. UPPER(c) : 모든 문자를 대문자로 변환한다.
예)
SELECT UPPER('email') FROM DUAL;
-- 출력 : EMAIL
예) 사원테이블의 자료중 사원명의 FIRST NAME이 'donald'인 사원들의 사원명, 부서명, 급여를 조회하시오
SELECT A.EMPLOYEE_ID 사원번호,
A.EMP_NAME 사원명,
B.DEPARTMENT_NAME 부서명,
A.SALARY 급여
FROM EMPLOYEES A, DEPARTMENTS B
WHERE EMP_NAME LIKE INITCAP('donald%') --OR LOWER(EMP_NAME) LIKE 'donald%'
AND A.DEPARTMENT_ID = B.DEPARTMENT_ID;
1.2. SUBSTR(c,p,n)
1.2.1. 주어진 문자열 'c'의 'p'번째 'n'개의 문자열을 추출하여 반환한다.
- 'p'의 인덱스는 1번째부터 시작한다.
- 'p'가 0이면 기본값인 1로 변환한다.
- 'p'가 음수이면 맨 끝에서 시작한 상대 위치값이 된다.
- 'n'이 생략되면 나머지 문자 전체가 연산의 대상이 된다.
예) 회원테이블(MEMBER)에서 주민등록번호 뒷자리를 저장한 컬럼(MEM_REGNO2)을 마일리지가 4000이상인 회원을 검색하시오.
비고에는 '여성회원'을 출력하시오.
단, Alias는 회원번호, 회원명, 주민번호, 마일리지, 비고
SELECT MEM_ID 회원번호,
MEM_NAME 회원명,
--MEM_REGNO1 || '-' || MEM_REGNO2 주민번호,
CONCAT(CONCAT(MEM_REGNO1,'-'),MEM_REGNO2) 주민번호,
MEM_MILEAGE 마일리지,
'여성회원' 비고
FROM MEMBER
WHERE MEM_MILEAGE >= 4000
AND SUBSTR(MEM_REGNO2,1,1) = '2' -- 문자열타입이니까 숫자도 문자열로 작성해준다.
OR SUBSTR(MEM_REGNO2,1,1) = '4';
예) 회원테이블에서 대전에 거주하는 회원을 조회하시오.
단, Alias는 회원번호, 회원명, 주소, 나이
문자열을 숫자자료로 변환하는 함수 : TO_NUMBER(문자열) 이다.
SELECT MEM_ID 회원번호,
MEM_NAME 회원명,
MEM_ZIP || ' ' || MEM_ADD1 || ' ' || MEM_ADD2 주소,
EXTRACT(YEAR FROM SYSDATE) - SUBSTR(MEM_REGNO1,1,2) - 1900 나이
FROM MEMBER
WHERE MEM_ADD1 LIKE '대전%';
'프로그래밍 > DB' 카테고리의 다른 글
[Oracle SQL Developer] 기초 VIII - 변환 함수 (0) | 2019.10.14 |
---|---|
[Oracle SQL Developer] 기초 VII - 날짜 함수 (0) | 2019.10.10 |
[Oracle SQL Developer] 기초 V - 숫자 함수 (0) | 2019.10.08 |
[Oracle SQL Developer] Import (0) | 2019.10.07 |
[Oracle SQL Developer] 기초 IV - SELECT 문 (0) | 2019.10.07 |