【发布时间】:2016-02-14 20:11:31
【问题描述】:
我有一张表,其中一列是 varchar(city) 类型。并希望找到存储在该列中的最长和最短的值。
select a.city, a.city_length from (select city, char_length(city) city_length
from station order by city, city_length) a
where a.city_length = (select min(a.city_length) from a) or
a.city_length = (select max(a.city_length) from a)
group by a.city_length;
有人可以帮忙吗?谢谢
一种解决方案:
select * from (select city, char_length(city) city_length from station order by city, city_length) a group by a.city_length order by a.city_length limit 1;
select * from (select city, char_length(city) city_length from station order by city, city_length) a group by a.city_length order by a.city_length desc limit 1;
【问题讨论】:
-
您在哪个 RDBMS 上工作?了解这一点很重要,因为我们将能够使用更高效的 rdbms 特定功能(并为您提供一些有关高级技术的提示)
-
请注意,可能没有“最长”的名字,这意味着您可能有多个。
标签: sql