-- 01,找出各月倒数第3天受雇的所有员工.
SELECT * FROM emp WHERE HIREDATE=(LAST_DAY(HIREDATE)-2);
-- 02,找出早于12年前受雇的员工.
select * from emp where HIREDATE < '2012-01-01';
-- 03,以首字母大写的方式显示所有员工的姓名.
select ename,concat(substring(ename,1,1),lower(substring(ename,2))) as new_name from emp;
-- 04,显示正好为5个字符的员工的姓名.
select * from emp where length(ENAME)=5;
-- 05,显示不带有"R"的员工的姓名
select * from emp where not ENAME like '%R%';
-- 06,显示所有员工姓名的前三个字符.
select substring(ENAME,1,3) as n from emp;
-- 07,显示所有员工的姓名,用a替换所有"A"
select ENAME,replace(ENAME,'A','a') as n from emp ;
-- 08,显示满10年服务年限的员工的姓名和受雇日期.:
select ENAME,HIREDATE from emp where HIREDATE < date_add('2024-1-28',INTERVAL -10 year);
-- 09,显示员工的详细资料,按姓名排序.
select * from emp order by ENAME;
-- 10,显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面.
select ENAME,HIREDATE from emp order by DATEDIFF('2024-1-28',HIREDATE) desc;
-- 11,显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序.
select ENAME,JOB,SAL from emp order by JOB desc , SAL;
-- 12,显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面.
select ENAME,date_format(HIREDATE,'%Y年%m月') from emp order by date_format(HIREDATE,'%m') ,date_format(HIREDATE,'%Y') ;
-- 13,找出在(任何年份的)2月受聘的所有员工。
select * from emp where date_format(HIREDATE,'%m') = '02';
-- 14,对于每个员工,显示其加入公司的天数.
select ENAME,datediff('2024-1-28',HIREDATE) from emp;
-- 15,显示姓名字段的任何位置包含"A"的所有员工的姓名.
SELECT ENAME FROM emp where ENAME like '%A%';
sql题目(1)
于 2024-02-01 16:30:22 首次发布