1. 讓SELECT TO_CHAR(sal,'L99,999.99') FROM emp WHERE ROWNUM < 5 輸出結果的貨幣單位是¥和$。
SELECT TO_CHAR(sal,'L99,999.99') FROM emp WHERE ROWNUM < 5
SELECT TO_CHAR(sal,'$99,999.99') FROM emp WHERE ROWNUM < 5
/*--說明:對於'$99,999.99'格式符:
L:表示強制顯示當地貨幣符號
$: 表示顯示美元符號
9: 表示一個數字
0: 表示強制0顯示
.: 表示一個小數點
,: 表示一個千位分隔符
--------------*/
2. 列出前五位每個員工的名字,工資、漲薪後的的工資(漲幅為8%),以“元”為單位進行四捨五入。
SELECT ename,sal,ROUND(sal * 1.08) FROM emp WHERE ROWNUM <=5;
3. 找出誰是最高領導,將名字按大寫形式顯示。
SELECT UPPER(ename) AS NAME FROM emp WHERE mgr =0;
4. 找出SMITH 的直接領導名字。
SELECT UPPER( ename) AS NAME FROM emp where empno in (select mgr from emp where ename ='SMITH')
6. 哪些員工的工資高於他直接上司的工資,列出員工的名字和工資,上司的名字和工資。
SELECT E.ENAME,E.SAL,M.ENAME,M.SAL FROM EMP E,EMP M WHERE E.EMPNO = M.EMPNO AND E.SAL > M.SAL;
SELECT E.ENAME,E.SAL FROM EMP E WHERE E.SAL > (SELECT M.SAL FROM EMP M WHERE E.EMPNO = M.EMPNO);
7. 哪些員工和SMITH同部門。
SELECT ENAME FROM EMP WHERE DEPTNO IN (SELECT DEPTNO FROM EMP WHERE ENAME='SMITH')
8. 哪些員工跟SMITH做一樣職位。
SELECT ENAME FROM EMP WHERE JOB= (SELECT JOB FROM EMP WHERE ENAME='SMITH')
9. 哪些員工跟SMITH不在同一個部門。
SELECT ENAME FROM EMP WHERE DEPTNO NOT IN (SELECT DEPTNO FROM EMP WHERE ENAME='SMITH')
10. 哪些員工跟SMITH做不一樣的職位。
SELECT ENAME FROM EMP WHERE JOB != (SELECT JOB FROM EMP WHERE ENAME='SMITH')
11. 顯示有提成的員工的信息:名字、提成、所在部門名稱、所在地區的名稱。
SELECT E.ENAME, E.COMM,D.DNAME,D.LOC FROM EMP E,DEPT D WHERE E.DEPTNO = D.DEPTNO AND (E.COMM IS NOT NULL AND E.COMM >0) ;
12. 顯示 RESEARCH部門有哪些職位。
SELECT DISTINCT E.JOB FROM EMP E,DEPT D WHERE D.DEPTNO = E.DEPTNO AND D.DNAME = ' RESEARCH';
13. 整個公司中,最高工資和最低工資相差多少。
SELECT MAX(SAL) - MIN(SAL) FROM EMP
14. 提成大於0 的人數。
SELECT COUNT(*) AS 提成大於0的人數 FROM emp WHERE comm > 0;
15. 顯示整個公司的最高工資、最低工資、工資總和、平均工資保留到整數位。
SELECT MAX(NVL(sal,0)) AS 最高工資, MIN(NVL(sal,0)) AS 最低工資,SUM(NVL(sal,0)) AS 工資總和, ROUND(AVG(NVL(sal,0))) AS 平均工資 FROM emp
16. 整個公司有多少個領導。
SELECT COUNT(DISTINCT(mgr)) FROM emp WHERE mgr IS NOT NULL and mgr!=0;
17. 列出在同一部門入職日期晚但工資高於其他同事的員工:名字、工資、入職日期。
SELECT DISTINCT E1.ename AS 姓名, E1.sal AS 工資,E1.hiredate AS 入職日期 FROM emp E1,emp E2 WHERE e1.empno = E2.empno AND E1.hiredate > E2.hiredate AND E1.sal > E2.sal ORDER BY 工資 DESC;