题解 | #获取employees中的first_name#

获取employees中的first_name

http://www.nowcoder.com/practice/74d90728827e44e2864cce8b26882105

思路: 刚开始想的是,先把first_name 截取后两个字母,排序,然后和原表通过主键关联起来,写出了这样的bug:

select first_name from
(SELECT emp_no,SUBSTRING(first_name,first_name.LENGTH-3,first_name.LENGTH-1)
from employees
order by  first_name desc)tab
where employees=emp_no=tab.emp_no;

报错: Execution Error SQL_ERROR_INFO: "Unknown column 'first_name.LENGTH' in 'field list'"

显然,.LENGTH 并不适用(可能是版本问题)。翻了下文档(别人的题解),发现 mysql 有提供 right 函数,返回字符串最右边的n个字符,那直接用 api 就行了呀,没必要关联了,直接查目标字段:

select first_name
from employees
order by  right("first_name",2) asc;

看了下结果对比: alt

没有头绪,不知道是按照什么顺序来的,看了眼正确的答案,应该是

select first_name
from employees
order by  right(first_name,2) asc;

去掉字段的引号即可,原理待本地安装好 MySQL 之后再探索。

全部评论

相关推荐

实习回来快一个月了,海投海笔海测全干了,今天面了两个真的有点心碎,好难啊! 感觉现在就是纯碰瓷互联网,焦虑,,, 阿里云快给我泡出来!!!
小肥罗:别焦虑,心态不好影响健康,心态放平哦,我可以告诉你,我大三的暑假拿了15份offer,但是我投递了300+企业,整个暑假,我都是边学习,边改简历,边刷题,边投递简历,边应对笔试,面试,一天三家公司的笔试/面试,我一天没睡几个小时,一屁股坐在房间,就像钉在那里一样。。。我也哭过,但是哭完后我也是继续努力才有15份offer的,加油兄弟!不许气馁哈
点赞 评论 收藏
分享
08-15 01:16
Python
Java小萌新新萌小...:照片不用整这么大的 而且你的照片截歪了 你想找专业对口的 那普通话证写在这里其实没有什么必要 就是看着内容多点 而且里面字体大小也不一样 修改一下排版 有很多空间可以再利用一下 字大一点 不然现在这样观感不太好 再就是项目好好优化一下 加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务