1. 程式人生 > >初學SQL語句練習

初學SQL語句練習

bstr sysdate tcap 月份 last sel subst har sub

--【1 】查詢出每個月倒數第三天受雇的所有員工
SELECT * FROM EMP WHERE HIREDATE=LAST_DAY(HIREDATE)-2;

--【2 】找出早於30 年前受雇的員工
SELECT TO_CHAR(SYSDATE,‘YYYY‘)-TO_CHAR(HIREDATE,‘YYYY‘) 年數 FROM EMP WHERE TO_CHAR(SYSDATE,‘YYYY‘)-TO_CHAR(HIREDATE,‘YYYY‘) >30;

--【3 】以首字母大寫的方式顯示所有員工的姓名
SELECT ENAME, INITCAP(ENAME) FROM EMP;

--【4 】顯示不帶有‘R‘的員工的姓名
SELECT ENAME FROM EMP WHERE ENAME NOT LIKE ‘%R%‘;

--【5 】顯示正好為5 個字符的員工的姓名
SELECT ENAME FROM EMP WHERE Length(ENAME)=5;

--【6 】顯示所有員工姓名的前三個字符
SELECT ENAME, SUBSTR(ENAME,1,3) FROM EMP ;

--【7 】顯示所有員工的姓名,用‘a‘替換所有的‘A‘
SELECT ENAME,REPLACE(ENAME,‘A‘,‘a‘)FROM EMP;

--【8 】顯示滿30 年的服務年限的員工的姓名和受雇日期
SELECT ENAME,HIREDATE FROM EMP WHERE TO_CHAR(SYSDATE,‘YYYY‘)-TO_CHAR(HIREDATE,‘YYYY‘) >30;

--【9 】顯示員工的詳細資料,按姓名排序
SELECT * FROM EMP ORDER BY ENAME;

--【10 】顯示員工的姓名和受雇日期,根據其服務年限,將最老的員工排在最前面
SELECT ENAME,HIREDATE FROM EMP ORDER BY HIREDATE;

--【11】顯示所有員工的姓名,加入公司的年份和月份,按 受雇日期所月排序,若月份相同則將最早年份的員工排在最前面
SELECT ENAME,TO_CHAR(HIREDATE,‘YYYY‘),TO_CHAR(HIREDATE,‘MM‘) FROM EMP ORDER BY TO_CHAR(HIREDATE,‘MM‘), HIREDATE;


--【12】顯示所有員工的姓名,工作,工資,按工作的降序排列,若工作相同則按工資排序
SELECT ENAME,JOB,SAL FROM EMP ORDER BY JOB DESC,SAL;

--【13】找出在(任何年份的)2月受聘的所有員工
SELECT * FROM EMP WHERE TO_CHAR(HIREDATE,‘MM‘)=2;


--【14】對於每個員工,顯示其加入公司的天數
SELECT ENAME ,ROUND(SYSDATE-HIREDATE) FROM EMP

--【15】顯示姓名字段的任何位置包含‘A’的所有員工的姓名
SELECT ENAME FROM EMP WHERE ENAME LIKE ‘%A%‘;

初學SQL語句練習