我有一个表,其中一列的类型是varchar(city)。并希望查找该列中存储的最长和最短的值。用于在表中查找最长名称和最短名称的SQL查询
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特定功能(并提供关于高级技术的一些提示) – Insac
请注意,可能没有“最长”的名称,这意味着您可能有多个。 – YoYo