关于取最大值MAX

关于取最大值MAX

如果我要把名字最长的人的名字打印出来,是不是必须这样写:

SELECT ename
FROM t_emp
WHERE LENGTH(ename)=MAX(LENGTH(ename));

有更好的写法吗。

否则效率还不如用其它编程语言来自己写逻辑。

诶对了?有没有办法让编程语言自己来写逻辑查询呢,而不是借用SQL。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1.测试同学SQL语句报错,同学可尝试使用下方代码进行实现,

select ename,length(ename) from t_emp ORDER BY length(ename) desc LIMIT 1;

    通过length()方法(length()函数用于获取字符串的长度)获取字段长度,然后进行排序,最后使用LIMIT获取第一条数据。

2. 关于查询数据库中的信息,是必须通过SQL语句进行查询的,无法通过其他逻辑代码操作数据库。

祝学习愉快!

  • 易萧 提问者 #1
    我后来看到老师介绍说不能在WHERE子句里面用聚合函数了。 不过给出的这个SQL语句不太懂。 ORDER BY ename不是根据名字排序嘛,而名字排序是根据字典顺序来的吧而非长度吧。
    2020-09-13 20:39:11
  • 好帮手慕小尤 回复 提问者 易萧 #2
    同学你好,刚是老师理解错误,同学使用length(ename)进行排序即可。祝学习愉快!
    2020-09-14 09:36:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师