选择最短和最长的字符串

新手上路,请多包涵

是否可以按表格中的字符选择最短和最长的字符串?

我有一个 CITY 类型为 VARCHAR(20) 的列,我想按字母顺序按长度选择最短和最长的城市名称。

我确实喜欢这个

SELECT CITY,LENGTH(CITY) FROM STATION WHERE LENGTH(CITY) IN ( SELECT MAX(LENGTH(CITY)) FROM STATION UNION SELECT MIN(LENGTH(CITY)) FROM STATION ) ORDER BY CITY ASC;

按字母顺序排列时,让 CITY 名称列为 ABC、DEF、PQRS 和 WXY,其长度分别为 3、3、4 和 3。命名最长的城市显然是 PQRS,但有最短的选项-命名城市;我必须选择 ABC,因为它按字母顺序排在第一位。

我的查询以所有三个长度为 3 的 CITY 结束。

ABC 3 DEF 3 PQRS 4 WXY 3

SELECT 的结果必须是

ABC 3 PQRS 4

原文由 Midhun 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 715
2 个回答

无论如何我得到了答案

SELECT CITY,LENGTH(CITY)
FROM STATION
WHERE LENGTH(CITY) IN (
  SELECT MAX(LENGTH(CITY))
  FROM STATION
  UNION
  SELECT MIN(LENGTH(CITY))
  FROM STATION
)
ORDER BY LENGTH(CITY) DESC,CITY ASC LIMIT 2;

原文由 Midhun 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是一个

WITH t1 AS (
    SELECT MAX(LENGTH(city)) AS Max_length_city ,
    MIN(LENGTH(city)) AS Min_length_city
    FROM station
)
SELECT city,LENGTH(city)
FROM station
WHERE LENGTH(city)=(SELECT Max_length_city FROM t1) OR LENGTH(city)=(SELECT Min_length_city FROM t1)
ORDER BY LENGTH(city) DESC,city ASC LIMIT 2

原文由 Mohamed yosri 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题