--【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;
--顯示所有員工的姓名,加入公司的年份和月份,按 受僱日期所月排序,若月份相同則將最早年份的員工排在最前面
select ename,to_char(hiredate,'yyyy'),to_char(hiredate,'mm') from emp order by to_char(hiredate,'mm'), hiredate;
--顯示所有員工的姓名,工作,工資,按工作的降序排列,若工作相同則按工資排序
select ename,job,sal from emp order by job desc,sal;
--找出在(任何年份的)2月受聘的所有員工
select * from emp where to_char(hiredate,'mm')=2;
--對於每個員工,顯示其加入公司的天數
select ename ,round(sysdate-hiredate) from emp
--顯示姓名欄位的任何位置包含『a』的所有員工的姓名
select ename from emp where ename like '%a%';
SQL語言 where語句練習(1)
接下來兩篇總結將針對where語句的練習。相關練習的資料庫請參看 http www.sqlzoo.cn 1 1.htm 練習題答案及分析 1.france 的人口數.select population from bbc where name france 2.國土大國的國名和人口密度 select ...
SQL語句練習
建立一張表,記錄 呼叫員的工作流水,記錄呼叫員編號,對方號碼,通話開始時間,結束時間。建表,插資料等都自己寫出sql 要求 輸出所有資料中通話時間最長的5條記錄。輸出所有資料中撥打長途號碼 對方號碼以0開頭 的總時長 輸出本月通話時長最多的前三個呼叫員的編號 輸出本月撥打 次數最多的前三個呼叫員的編...
SQL 語句練習
mysql select from persons limit 5 oracle select from persons where rownum 5 select from persons where name like l select from persons where name not l...