Oracle Join & 함수 문제
sql > SELECT empno AS "사번", ename "이름", sal "급여",
comm "보너스", (sal + nvl(comm,0)) * 1.1 AS "보너스금액"
FROM EMP;
sql > SELECT e.ename, d.dname, d.loc
FROM emp e, DEPT d
WHERE e.DEPTNO = d.DEPTNO AND e.comm IS NOT NULL;
sql > SELECT deptno, job, COUNT(*), AVG(sal), SUM(sal)
FROM emp
GROUP BY job, deptno;
sql > SELECT AVG(sal), SUM(sal), MAX(sal), MIN(sal)
FROM emp
GROUP BY deptno
ORDER by AVG(sal) DESC;
sql > SELECT empno, ename, job, sal
FROM EMP
WHERE job = UPPER('clerk') AND sal >= 1100;
sql > select empno, ename, hiredate
FROM EMP
WHERE TO_CHAR(hiredate, 'YYYY') >= 1987;
sql > SELECT e.empno, e.ename, e.mgr, e.DEPTNO, d.dname, d.loc
FROM emp e, DEPT d
WHERE e.DEPTNO = d.DEPTNO AND e.ENAME IN ('SCOTT', 'MILLER');
sql > select e.ename, e.sal,
CASE
WHEN e.deptno = 10 THEN sal * 0.13
WHEN e.DEPTNO = 20 THEN sal * 0.15
WHEN e.DEPTNO = 30 THEN sal * 0.18
END AS "보너스금액",
e.deptno, d.dname
FROM emp e, DEPT d
WHERE e.DEPTNO = d.DEPTNO;
select LOWER(SUBSTR(ename, 1,3))
FROM EMP
WHERE LENGTH(ename) >= 6;
10. 같은 업무를 하는 사람의 수가 4명 이상인 업무와 인원수, 평균봉급을 출력하시오.
SELECT job, COUNT(*), AVG(sal)
FROM EMP
GROUP BY job
HAVING COUNT(job) >= 4;
sql > SELECT MAX(sal) - MIN(sal)
FROM EMP;
sql > SELECT *
FROM AUTHORS
WHERE state = 'CA';
sql > SELECT country, COUNT(*)
FROM PUBLISHERS
GROUP BY country;
sql > SELECT title, price, pubdate
FROM TITLES
WHERE price IS NULL;
sql > SELECT *
FROM TITLES
WHERE TO_CHAR(pubdate, 'YYYY-MM') = '1991-10';
--WHERE pubdate LIKE '%-OCT-91';
sql > SELECT FLOOR(MONTHS_BETWEEN(SYSDATE, pubdate) / 12)
FROM TITLES
WHERE title = 'Life Without Fear';
sql > SELECT fname || ' ' || lname
FROM EMPLOYEE
WHERE TO_CHAR(hire_date, 'YYYY') IN (1991, 1992);
sql > SELECT e.emp_id, e.fname, j.job_desc
FROM EMPLOYEE e, jobs j
WHERE e.job_id = j.job_id;
sql > select MAX(price) - MIN(price)
FROM TITLES;
sql > SELECT *
FROM SALES
WHERE TO_CHAR(ord_date, 'YYYY') = 1994;