使用单行函数

1. 写一个查询显示当前日期,列标签显示为 Date。

select CURDATE()"DATE" FROM dual;

2. 对每一个雇员,显示 employee number、last_name、salary 和 salary 增加 15%,并且表示成整数,列标签显示为 New Salary。将你的 SQL 语句存到名为 lab3_2.sql 的文本文件中。

select employee_id "employee number",last_name,salary,ROUND(1.15*salary,0)"NEW SALARY"
FROM employees;

4. 修改查询 lab3_2.sql 添加一个列,该列从新薪水 New Salary 列中减去旧薪水,列标签为 Increase。保存内容到文件 lab3_4.sql 中。运行修订的查询。

select employee_id "employee number",last_name,salary,ROUND(1.15*salary,0) AS "NEW SALARY",salary*1.15-salary AS "INCREASE"
FROM employees;

5. 写一个查询用首字母大写,其它字母小写显示雇员的 last names,显示名字的长度,对所有名字开始字母是 J、A 或 M 的雇员,给每列一个适当的标签。用雇员的 last names 排序结果。

select last_name "Name",LENGTH(last_name) AS "Length"
from employees
where last_name LIKE 'J%' OR last_name LIKE 'A%' OR last_name LIKE 'M%'
ORDER BY last_name;

6. 对每一个雇员,显示其last name,并且计算从雇员受雇日期到今天的月数,列标签MONTHS_WORKED。按受雇月数排序结果,四舍五入月数到最靠近的整数月。 注:你的结果将不同。

select last_name,ROUND(TIMESTAMPDIFF(MONTH,hire_date,CURDATE()),0) AS "MONTH_WORKED"
FROM employees
ORDER BY TIMESTAMPDIFF(MONTH,hire_date,CURDATE());

8. 创建一个查询显示所有雇员的 last name 和 salary。格式化为 15 个字符长度,用 $ 左填充,列标签 SALARY。

select last_name,lpad(replace(REPLACE(salary,',',''),'.00',''),15,'$') AS SALARY
FROM employees;

10. 显示 last name、hire date 和 雇员开始工作是周几,列标签 DAY,用星期一作为周的起始日排序结果。

select last_name,hire_date,CASE DAYOFWEEK(hire_date)
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
WHEN 7 THEN 'Saturday'
end "DAY"
from employees
ORDER BY DAYOFWEEK(hire_date-1);

11. 创建一个查询显示雇员的 last names 和 commission (佣金) 比率。如果雇员没有佣金,显示 “No Commission”,列标签 COMM。

select last_name,IF(commission_pct IS NULL,'No Commission',commission_pct) "COMM"
from employees;

12. 创建一个查询显示雇员的 last names 并带星号显示他们的年薪,每个星号表示1000美圆。按薪水降序排序数据。列标签为 EMPLOYEES_AND_THEIR_SALARIES。

select CONCAT(last_name,rpad('*',round(salary/1000,0),'*'))"EMPLOYEES_AND_THEIR_SALARIES"
FROM employees
ORDER BY salary DESC;

13. 用 CASE 语法,写一个查询,按照下面的数据显示所有雇员的基于 JOB_ID 列值的级别。

工作    级别  

 AD_PRES   A  

 ST_MAN    B  

 IT_PROG    C  

 SA_REP    D  

 ST_CLERK   E  

 不在上面的   0  

select job_id,CASE job_id
WHEN "AD_PRES" THEN "A"
WHEN "ST_MAN" THEN "B"
WHEN "IT_PROG" THEN "C"
WHEN "SA_REP" THEN "D"
WHEN "ST_CLERK" THEN "E"
ELSE "0"
END "G"
FROM employees;

加油加油^-^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值