初学SQL语句练习1

--【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%';

posted @ 2017-11-28 14:13  Hallowmas  阅读(956)  评论(2编辑  收藏  举报