我有一個表,其中一列的類型是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