首页 > 试题广场 >

获取employees中的first_name

[编程题]获取employees中的first_name
  • 热度指数:83092 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
现有employees表如下:
emp_no birth_date first_name last_name gender hire_date
10001 1953-09-02 Georgi
Facello   
M
1986-06-26 
10002
1964-06-02 Bezalel    
Simmel    
F    
1985-11-21
10003
1959-12-03 Parto      
Bamford   
M    
1986-08-28
10004
1954-05-01 Christian  
Koblick   
M    
1986-12-01 
10005
1955-01-21
Kyoichi
Maliniak
M
1989-09-12
10006
1953-04-20
Anneke
Preusig
F
1989-06-02
10007
1957-05-23
Tzvetan
Zielinski
F
1989-02-10
10008
1958-02-19
Saniya
Kalloufi
M
1994-09-15
10009
1952-04-19
Sumant
Peac
F
1985-02-18
10010
1963-06-01
Duangkaew
Piveteau
F
1989-08-24
10011
1953-11-07
Mary
Sluis
F
1990-01-22
请你将employees中的first_name,并按照first_name最后两个字母升序进行输出。
以上示例数据的输出如下:
first_name
Christian  
Tzvetan
Bezalel       
Duangkaew
Georgi
Kyoichi
Anneke
Sumant
Mary
Parto      
Saniya
示例1

输入

drop table if exists  `employees` ; 
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`));
INSERT INTO employees VALUES(10001,'1953-09-02','Georgi','Facello','M','1986-06-26');
INSERT INTO employees VALUES(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21');
INSERT INTO employees VALUES(10003,'1959-12-03','Parto','Bamford','M','1986-08-28');
INSERT INTO employees VALUES(10004,'1954-05-01','Chirstian','Koblick','M','1986-12-01');
INSERT INTO employees VALUES(10005,'1955-01-21','Kyoichi','Maliniak','M','1989-09-12');
INSERT INTO employees VALUES(10006,'1953-04-20','Anneke','Preusig','F','1989-06-02');
INSERT INTO employees VALUES(10007,'1957-05-23','Tzvetan','Zielinski','F','1989-02-10');
INSERT INTO employees VALUES(10008,'1958-02-19','Saniya','Kalloufi','M','1994-09-15');
INSERT INTO employees VALUES(10009,'1952-04-19','Sumant','Peac','F','1985-02-18');
INSERT INTO employees VALUES(10010,'1963-06-01','Duangkaew','Piveteau','F','1989-08-24');
INSERT INTO employees VALUES(10011,'1953-11-07','Mary','Sluis','F','1990-01-22');

输出

Chirstian
Tzvetan
Bezalel
Duangkaew
Georgi
Kyoichi
Anneke
Sumant
Mary
Parto
Saniya
头像 不是江小白
发表于 2020-11-26 17:41:05
这题貌似一开始MySQL的RIGHT函数用不了,但是不知道哪天(应该是最近)开始,牛客换SQL系统了。。。现在都是MySQL 8.0的系统:所以这次用MySQL的RIGHT函数来解就很简单: SELECT first_name FROM employees ORDER BY RIGHT(first_ 展开全文
头像 小王96
发表于 2021-04-23 10:50:38
三种方法都可以用LEFT(s,n)返回字符串 s 的前 n 个字符RIGHT(s,n)返回字符串 s 的后 n 个字符第一种:(right) select first_name from employees order by right(first_name,2)第二种:(substr) selec 展开全文
头像 渔利
发表于 2020-03-10 14:12:30
代码:SELECT first_name FROM employees ORDER BY substr(first_name,-2,2) asc此处有一个问题,题目中说的是最后两个字母,那就应该是从-1开始,但是不能通过,从-2开始可以。不知道是不是存储上,有什么问题?希望有人解答一下​
头像 朝阳1005
发表于 2021-02-14 14:25:13
select e.first_name from employees e order by substr(e.first_name,-2);substr可分割字符串,将倒数后两个字符串分割出来,然后进行排序即可substr(字段,指定分割位置,长度)
头像 高质量搬砖人
发表于 2021-01-31 10:14:27
方法)RIGHT SELECT first_name FROM employees ORDER BY RIGHT(first_name,2); first_name最后两个字母 即 右数两个字母 用RIGHT函数
头像 Mr_jin
发表于 2021-06-26 17:14:18
mysql字符串分割1、left(str,n)//从左开始分割,截取n位2、right(str,n)//从右开始分割,截取n位3、substring(str,pos)//从哪一位开始 substring(str,pos,length)//从哪一位开始截取几位4、substring_index(s 展开全文
头像 xiaomo940209
发表于 2020-07-01 15:34:38
用mysql的话有函数 right 函数。就是取右边第几位的意思,同样还有一个 left 函数。select * from salaries order by right(emp_no,2) 但是本题数据库是SQlite 只能用substrsubstr(emp_no,-2)
头像 早起的虫儿e
发表于 2021-04-09 09:47:45
题目描述:获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列解答: 方案1:采用right函数SELECT first_nameFROM employeesORDER BY RIGHT(first_name,2) ASC;方案2:采用subs 展开全文
头像 Ding_123
发表于 2021-12-03 18:35:16
知识点 最后两个字母使用substr(str,pos)截取从pos位置开始到最后的所有str字符串 还有一种为substr(str,pos,len)从pos开始的位置,截取len个字符(空白也算字符) 代码 select first_name from employees order by su 展开全文
头像 jiang_dr
发表于 2021-10-25 11:59:18
思路:本题主要考截取最后两个字母 字符串截取字符的函数有很多,这里列举几个 left(str, length) 从左开始截取字符串 说明:left(被截取字段,截取长度) right(str, length) 从右开始截取字符串 说明:right(被截取字段,截取长度) subst 展开全文