题目
现在公司里有职工信息表Worker
, HR需要你提供不同的职工信息,包括:
- 从 Worker 表中获取 “FIRST_NAME” 并以大写形式显示。
- 从 Worker 表中获取 DEPARTMENT 的唯一值。
- 查找 Worker 表中 FIRST_NAME 的前三个字符。
- 查找 Worker 表中名为 ‘Amitabh’ 的名字列中字母 ‘a’ 的位置。
- 获取 Worker 表中 DEPARTMENT 的唯一值并打印其长度。
- 在 Worker 表中将 ‘a’ 替换为 ‘A’ 后打印 FIRST_NAME。
- 将 Worker 表中的 FIRST_NAME 和 LAST_NAME 打印到单个列 COMPLETE_NAME 中,用空格分隔它们。
- 获取 DEPARTMENT 名称为 “Admin” 的 Worker 的详细信息。
- 获取 FIRST_NAME 包含 ‘a’ 的 Worker 的详细信息。
- 获取 FIRST_NAME 以 ‘h’ 结尾且包含六个字母的 Worker 的详细信息。
示例:
输入:
worker
表
列名 | 类型 |
---|---|
WORKER_ID | INT |
FIRST_NAME | CHAR(25) |
LAST_NAME | CHAR(25) |
SALARY | INT(15) |
JOINING_DATE | DATETIME |
DEPARTMENT | CHAR(25) |
答案
解题思路
回顾QL查询中的关于字符串处理的函数公式:
- upper(): 将字符串转换为大写形式。
- distinct: 用于返回唯一值。
- substring(): 用于提取字符串的子串。
- INSTR(): 返回字符串中子字符串的位置。
- length(): 返回字符串的长度。
- REPLACE(): 用一个字符串替换另一个字符串。
- CONCAT(): 用于连接两个或多个字符串。
- like: 用于模式匹配,可以使用通配符进行匹配。
答案示例
- 从 Worker 表中获取 “FIRST_NAME” 并以大写形式显示。
Select upper(FIRST_NAME) from Worker;
- 从 Worker 表中获取 DEPARTMENT 的唯一值。
Select distinct DEPARTMENT from Worker;
- 查找 Worker 表中 FIRST_NAME 的前三个字符。
Select substring(FIRST_NAME,1,3) from Worker;
- 查找 Worker 表中名为 ‘Amitabh’ 的名字列中字母 ‘a’ 的位置。
Select INSTR(FIRST_NAME, BINARY'a') from Worker where FIRST_NAME = 'Amitabh';
- 获取 Worker 表中 DEPARTMENT 的唯一值并打印其长度。
Select distinct length(DEPARTMENT) from Worker;
- 在 Worker 表中将 ‘a’ 替换为 ‘A’ 后打印 FIRST_NAME。
Select REPLACE(FIRST_NAME,'a','A') from Worker;
- 将 Worker 表中的 FIRST_NAME 和 LAST_NAME 打印到单个列 COMPLETE_NAME 中,用空格分隔它们。
Select CONCAT(FIRST_NAME, ' ', LAST_NAME) AS 'COMPLETE_NAME' from Worker;
- 获取 DEPARTMENT 名称为 “Admin” 的 Worker 的详细信息。
Select * from Worker where DEPARTMENT like 'Admin%';
- 获取 FIRST_NAME 包含 ‘a’ 的 Worker 的详细信息。
Select * from Worker where FIRST_NAME like '%a';
- 获取 FIRST_NAME 以 ‘h’ 结尾且包含六个字母的 Worker 的详细信息。
Select * from Worker where FIRST_NAME like '_____h';
更多详细答案可关注公众号查阅。