- 학생 테이블의 전화번호 칼럼에서 지역번호를 출력하여라.
SQL> select name, sbustr(tel,1,inst(tel,')')-1) tel_loc from student;
SQL> select name, rtrim(substr(tel,1,3),')') tel_loc from student;
- 학생 테이블에서 userid에서 2번째 a의 위치가 5번째인학생의 name, userid를 출력하세요.
SQL> select name, userid from student where instr(userid,'a',1,2)=5;
instr(userid,'a',1,2) ; userid에서 'a'의 1번째 위치에서 2번째로 위치한 곳에 자리수를 반환하시오.
- tdept 테이블의 dept_name 컬럼을 아래처럼 출력되게 하세요.
12경영지원
123456재무
123456총무
12기술지원
123H/W지원
SQL> select lpad(dept_name,10,'1234567890') from tdept; => 123...에서 채우다가 dept_name으로 채움
- tdept 테이블의 dept_name 컬럼을 아래처럼 출력되게 하세요.
경영지원90
재무567890
기술지원90
SQL> select rpad(dept_name,10,substr('1234567890',lengthb(dept_name))+1) from tdept;
- student 테이블의 name 컬럼에서 성 부분을 # 처리하고 이름만 보이게 출력하세요.
SQL> select replace(name,subst(name,1,1),'#') from student;
- student 테이블의 idnum 컬럼에서 주민번호 뒷 7자리를 *로 보이게 출력하세요.
SQL> select replace(idnum,substr(idnum,7,7),'*******') from student;
- 날짜, 시간를 문자로 변환하여 출력하세요.
SQL> select to_char(sysdate, 'yyyy-mm-dd:hh24:mi:ss') from dual;
- 102번 학과 학생들에 대해 주민번호 7번째 문자가 1인 경우 '남자', 2인 경우 '여자'로 변환하여 출력하세요.
SQL> select name, idnum, decode(substr(idnum,7,1),1,'남자',2,'여자') gender from student where deptno=102;
- 학생 테이블에서 키의 범위에 따라 'A', 'B', 'C', 'D' 4개의 등급으로 나누어 출력하세요.
키가 180~190이면 'A', 170~179이면 'B', 160~169이면 'C', 160미만이면 'D'로 출력하세요.
SQL> select name, height,
case
when height < 160 then 'D'
when height between 160 and 169 then 'C'
when height between 170 and 179 then 'B'
when height between 180 and 190 then 'A'
end
from student;