我是 SQL 新手,所以问这个问题。
所以我有下表,其中包含名为 Station 的 Id、City、State。
并且我需要查询 STATION 中 CITY 名称最短和最长的两个城市,以及它们各自的长度(即:名称中的字符数)。如果有多个最小或最大的城市,请选择按字母顺序排在第一位的城市。
谁能帮我开始做这件事。我在 city
上尝试了 len()
函数,但它似乎不起作用。
最佳答案
名称最短的城市:
SELECT City, CHAR_LENGTH(City) AS len
FROM STATION
ORDER BY CHAR_LENGTH(City) ASC, City
LIMIT 1
名字最长的城市:
SELECT City, CHAR_LENGTH(City) AS len
FROM STATION
ORDER BY CHAR_LENGTH(City) DESC, City
LIMIT 1
您可以使用 UNION ALL 将它们组合成一个语句:
SELECT *
FROM (
SELECT City, CHAR_LENGTH(City) AS len
FROM STATION
ORDER BY CHAR_LENGTH(City) ASC, City
LIMIT 1
) shortest
UNION ALL (
SELECT City, CHAR_LENGTH(City) AS len
FROM STATION
ORDER BY CHAR_LENGTH(City) DESC, City
LIMIT 1
) longest
关于mysql - SQL中列查询的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624003/