본문 바로가기
수업(국비지원)/Oracle

[Oracle] SQL 단일행 함수 - 문자 함수(대소문자 변환 함수) initcap, upper, lower

by byeolsub 2023. 4. 14.

1) initcap

         : 첫문자만 대문자로 변환

initcap(‘abcd’) -> Abcd
//문자열 중간에 공백이 있는 경우, 단어의 시작부분이 대문자로 바뀐다.

 2) upper 
        : 대문자로 변환

upper(‘abcd’) ->ABCD

   3) lower 
          : 소문자로 변환

lower(‘ABCD’) -> abcd
예시 : 
 1. 학과번호1이 101학과 학생의이름,id를 출력하기.
 id는 첫문자만 대문자로, 전부 대문자로, 전부 소문자로 출력하기.
select name,id,initcap(id),upper(id),lower(id) from student where deptno1 = 101;
예시 : 
 2. emp테이블에서 사원의 이름이 smith인 사원의 이름,급여,부서코드 조회하기.
 smith 이름은 대소문자 상관없이 조회되도록 함.
select ename,sal,deptno from emp where lower(ename) = lower('smith');

문제 : 
 1. 학생 중 id 값에 M문자를 가지고 있는 학생의 이름,id,학과번호1을 조회하기.
 단 id의 내용은 대소문자 상관없이 조회되도록 함.
select name,id,deptno1 from student where id like '%m%' or '%M%';

select name,id,deptno1 from student where lower(id) like '%m%';

select name,id,deptno1 from student where upper(id) like '%M%';

select name,id,deptno1 from student where upper(id) like upper('%M%');

   - 명확한 답은 없다. 응용해서 만들면 된다.