题目描述
获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列
CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));
一开始理解错题目, 以为只是要first_name 的最后两位, 原来题目的意思是要first_name , 但是first_name是要按其最后两个字母的顺序从小到大排列的。
substr(string s1, int startIndex, int offset)
这是一个字符串截取函数, 返回的是截取后的结果。
s1是原串。 startIndex是截取的起始位置, 当startIndex 大于 0 的时候, startIndex>=1, 也就是下标从 1 开始算的, 当其大于零的时候表示从 第 startindex开始截取字符串, 截取的长度是 offset ,offset 可省略, 表示截取到末尾
如果startIndex < 0 , 表示从倒数第 startIndex开始截取字符串, 比如 startIndex = -2 , 表示从倒数第 2 个字符开始截取字符串。
SELECT first_name
FROM employees
ORDER BY SUBSTR(first_name, -2);