题目描述:获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列
解答:
方案1:采用right函数
SELECT first_name
FROM employees
ORDER BY RIGHT(first_name,2) ASC;
方案2:采用substr函数
SELECT first_name
FROM employees
ORDER BY RIGHT(first_name,2) ASC;
补充:
RIGHT函数:
RIGHT(str,len):Returns the rightmost len characters from the string str, or NULL if any argument is NULL(返回字符串str中右边长度为len的字符,若str为'null'则统一返回'NULL').
LEFT函数
LEFT(str,len):Returns the leftmost len characters from the string str, or NULL if any argument is NULL(返回字符串str中左边长度为len的字符,若str为'null'则统一返回'NULL').
substr函数
SUBSTR(str,pos):(从左到右)从str中第pos位开始截取
SELECT SUBSTRING('Quadratically',5); -> 'ratically'
SUBSTR(str FROM pos):等同于substr(str,pos)
SELECT SUBSTRING('foobarbar' FROM 4); -> 'barbar'
SUBSTR(str,pos,len):(从左到右)从字符串str中第POS位开始截取,截取长度位len
SELECT SUBSTRING('Quadratically',5,6); -> 'ratica'
SUBSTR(str FROM pos FOR len):等同于substr(str,pos,len)
SELECT SUBSTRING('Sakila' FROM -4 FOR 2); -> 'ki'
详细参考:
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_substr