SQL从表中选择最大值
在我的一次采访中,有人问我如何才能选择 不带关键字 MAX
和 TOP
的数据库中的最大值。
我的回答是:
select Table.Value
from Table
where Table.Value >= all( select Table.Value from Table)
但这不是正确的。采访者说 我应该只选择一项。
有什么想法吗?
谢谢 ;)
On one of my interviews I was asked how it's possible to select
maximal value from DB without keyword MAX
and TOP
.
My answer was:
select Table.Value
from Table
where Table.Value >= all( select Table.Value from Table)
But this wasn't the right one. The interviewer said that
I should do it only with one select.
Any ideas ?
Thank you ;)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
怎么样;
效率低下&丑陋糟糕,错过了单选限制How about;
Less efficient & uglierWoops missed the single select restriction一个建议(如果你使用MySQL,我也设置了限制):
One suggestion (if you use MySQL, I put limit also):
按键对结果集进行降序排序,最后为空。
这使得具有最大值的行成为第一个。
选择第一行,就完成了。
order the result set by the key, descending, nulls last.
That makes the row with the max, first.
select the first row, and you are done.