程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle 經典語法(三)

Oracle 經典語法(三)

編輯:Oracle教程

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;


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved