SQL - 排序方式不返回结果



我正在尝试解决这个挑战(不要求最终解决方案(!问题链接

第一步:我想返回城市列表,长度(city(按长度排序,而不是ROWNUMBER = 1

要选择名称最短的城市:

我的代码是:

SELECT DISTINCT city, LENGTH(city) FROM station ORDER BY LENGTH(city) ASC;

我期待结果按长度排序,但它是按城市排序的。如果我更改为:

SELECT DISTINCT city, LENGTH(city) FROM station ORDER BY city DESC;

它仍然按 ASC 顺序按城市排序。

我做错了什么?或者这是页面的问题,因为即使SELECT city FROM station ORDER by city DESC;也不起作用。

谢谢。

这可能取决于数据库,但似乎distinct可能会在order by之后进行处理。 只需使用GROUP BY

SELECT city, LENGTH(city)
FROM station
GROUP BY city
ORDER BY LENGTH(city) ASC;

最新更新