我有一个表,其中一列是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;
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?谢谢
一个解决方案
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;
Run Code Online (Sandbox Code Playgroud) 查询:使用最短和最长的CITY名称查询STATION中的两个城市,以及它们各自的长度(即:名称中的字符数).如果有多个最小或最大的城市,请选择按字母顺序排序的城市.
样本输入:
假设CITY只有四个条目: DEF, ABC, PQRS and WXY
样本输出:
ABC 3
PQRS 4
Run Code Online (Sandbox Code Playgroud)