Mysql获取Employees中的first_name,按照最后两个字母排列

Mysql获取Employees中的first_name,按照最后两个字母排列

题目描述:

获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列

运用到的知识点:

  1. select xxx from 表名
  2. order by
  3. Right(列名,数字)
select first_name from enployees 
order by RIGHT(first_name,2);

Right函数

right(str , len)
返回字符串 str最右边的len个字符,如果任意参数为NULL返回NULL。

示例:
select Right('footbar',4);

±--------------------------------------------------------+
| RIGHT(‘foobarbar’, 4) |
±--------------------------------------------------------+
| rbar |
±--------------------------------------------------------+/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(1) 查询每个部门(departments)的编号(dept_no),名称(dept_name),在该部门工作过的雇员(employees)人数,最低工资(salary),平均工资,最高工资及工资总额; ``` SELECT d.dept_no, d.dept_name, COUNT(e.emp_no) AS num_of_employees, MIN(s.salary) AS min_salary, AVG(s.salary) AS avg_salary, MAX(s.salary) AS max_salary, SUM(s.salary) AS total_salary FROM departments d LEFT JOIN dept_emp de ON d.dept_no = de.dept_no LEFT JOIN employees e ON de.emp_no = e.emp_no LEFT JOIN salaries s ON e.emp_no = s.emp_no GROUP BY d.dept_no, d.dept_name; ``` (2) 查询每个部门(departments)的编号(dept_no),名称(dept_name),及各个时间段(from_date,to_date)担任该部门经理(dept_manager)的雇员的编号(emp_no)和姓名(first_name+last_name),并按时间段先后显式; ``` SELECT d.dept_no, d.dept_name, dm.from_date, dm.to_date, e.emp_no, CONCAT(e.first_name, ' ', e.last_name) AS emp_name FROM departments d LEFT JOIN dept_manager dm ON d.dept_no = dm.dept_no LEFT JOIN employees e ON dm.emp_no = e.emp_no ORDER BY dm.from_date ASC; ``` (3) 查询每位雇员的编号(emp_no),姓名(first_name+last_name),及各个时间段(from_date,end_data)的工资额(salary),并按时间段先后显式; ``` SELECT e.emp_no, CONCAT(e.first_name, ' ', e.last_name) AS emp_name, s.from_date, s.to_date, s.salary FROM employees e LEFT JOIN salaries s ON e.emp_no = s.emp_no ORDER BY s.from_date ASC; ``` (4) 查询每位雇员的编号(emp_no),姓名(first_name+last_name),及各个时间段(from_date,end_data)的工作部门名称(dept_name),并按时间段先后显式; ``` SELECT e.emp_no, CONCAT(e.first_name, ' ', e.last_name) AS emp_name, dp.from_date, dp.to_date, d.dept_name FROM employees e LEFT JOIN dept_emp dp ON e.emp_no = dp.emp_no LEFT JOIN departments d ON dp.dept_no = d.dept_no ORDER BY dp.from_date ASC; ``` (5) 查询每位雇员的编号(emp_no),姓名(first_name+last_name),及任职过的部门数; ``` SELECT e.emp_no, CONCAT(e.first_name, ' ', e.last_name) AS emp_name, COUNT(DISTINCT dp.dept_no) AS num_of_departments FROM employees e LEFT JOIN dept_emp dp ON e.emp_no = dp.emp_no GROUP BY e.emp_no, emp_name; ``` (6) 查询每位雇员的编号(emp_no),姓名(first_name+last_name),及各个时间段(from_date,end_data)担任的职务(title),并按时间段先后显式; ``` SELECT e.emp_no, CONCAT(e.first_name, ' ', e.last_name) AS emp_name, tt.from_date, tt.to_date, t.title FROM employees e LEFT JOIN titles t ON e.emp_no = t.emp_no LEFT JOIN titles tt ON t.emp_no = tt.emp_no AND tt.from_date < t.from_date GROUP BY e.emp_no, tt.from_date, tt.to_date, t.title ORDER BY tt.from_date ASC; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值