쌓고 쌓다
오라클 중심의 SQL 배움터 6장 연습문제 풀이 본문
1번 - 아이디 길이 7 이상인 학생의 이름, 아이디 출력
2번 - 학생의 이름, 아이디(소문자로), 생년월일('2000-01-01') 출력
3번 - 학생의 이름, 지도 교수 번호(없다면 0000으로) 출력
4번 - 학생의 비만도가 10보다 작으면 '정상', 10보다 크고 20보다 작으면 '과체중', 20보다 크면 '비만' 출력
=> 비만도 = (실제체중-표준체중)*100, 표준체중 = (키 - 100)*0.9
5번 - 학번을 3으로 나눈 나머지가 0이면 'A팀', 1은 'B팀', 2는 'C팀'으로 분류하여 학생 번호, 이름, 학과 번호, 팀이름 출력
6번 - 학생 번호의 지역번호가 02이면 '서울', 051이면 '부산', 052이면 '울산', 053이면 '대구', 나머지는 '기타'로
이름, 전번, 지역 출력
7번 - 고용 달(month)이 1~3월인 교수의 월급을 10 곱하여 반올림과 절삭하여 출력(세자리마다 ',' 기호 삽입)
(이름, 고용일, 반올림, 절삭 출력)
8번 - 교수들의 근무 개월 수를 현재일 기준으로 계산하여, 근무 개월순으로 정렬하여 출력
(개월 수의 소수점 이하는 출력하지 않는다.) (이름, 고용일, 절삭한값)
9번 - 학과 이름과 위치를 결합하여 출력
10번 - 부서 테이블에 상위 부서(=college)가 없으면 부서 이름만 출력하고, 상위 부서가 있으면 부서 번호와 부서 이름을 결합 출력
(1)
SELECT name, LOWER(userid)
FROM student WHERE LENGTH(userid) >= 7;
(2)
SELECT name, LOWER(userid), TO_CHAR(birthdate, 'YYYY-MM-DD')
FROM student;
(3)
SELECT name, NVL(TO_CHAR(profno),'0000')
FROM student;
(4)
SELECT name, weight, CASE WHEN ((weight-((height-100)*0.9))/((height-100)*0.9))*100 < 10 THEN '정상'
WHEN ((weight-((height-100)*0.9))/((height-100)*0.9))*100 BETWEEN 10 AND 20 THEN '과체중'
ELSE '비만'
END
FROM student;
(5)
SELECT studno, name, deptno, DECODE(MOD(studno,3), 0, 'A팀', 1, 'B팀', 2, 'C팀') "TEAM"
FROM student;
(6)
SELECT name, tel, DECODE(SUBSTR(tel,1, INSTR(tel,')')-1), '02', '서울', '051', '부산', '052', '울산', '053', '대구', '기타') "CITY"
FROM student;
(7)
SELECT name, hiredate, TO_CHAR(ROUND(sal*10), '9,999'), TO_CHAR(TRUNC(sal*10), '9,999')
FROM professor
WHERE TO_CHAR(hiredate,'MM') BETWEEN 1 AND 3;
(8)
SELECT name, hiredate, TRUNC(MONTHS_BETWEEN(SYSDATE, hiredate)) "TENURE"
FROM professor ORDER BY "TENURE" DESC;
(9)
SELECT dname || '는 ' || loc "info"
FROM department;
(10)
SELECT dname, college, NVL2(college, deptno || dname, dname) "DEPT_DNAME"
FROM department;
'프로그래밍 > SQL' 카테고리의 다른 글
[Oracle] OUTER JOIN, SELF JOIN (0) | 2022.11.05 |
---|---|
오라클 중심의 SQL 배움터 7장 연습문제 풀이 (0) | 2022.11.02 |
오라클 중심의 SQL 배움터 5장 연습문제 풀이 (0) | 2022.11.02 |
오라클 중심의 SQL 배움터 2장 연습문제 풀이 (0) | 2022.11.02 |
[Oracle] EQUI JOIN, NON-EQUI JOIN (0) | 2022.11.01 |
Comments