是否可以按表中的字符选择最短和最长的字符串?
我有一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;
按字母顺序排列时,让城市名称列为 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
Mid*_*hun 11
无论如何我得到了答案
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;
Run Code Online (Sandbox Code Playgroud)
小智 8
我知道您已经选择了答案,但这里有一个简短的答案可能会有所帮助。这是使用 Microsoft MySQL Server,但也可以使用 call LIMIT 而不是 TOP 轻松转换为任何其他类型。
最短长度
SELECT TOP 1 CITY, LEN(CITY)
FROM STATION
ORDER BY LEN(CITY) ASC, CITY ASC;
Run Code Online (Sandbox Code Playgroud)
最长长度
SELECT TOP 1 CITY, LEN(CITY)
FROM STATION
ORDER BY LEN(CITY) DESC, CITY ASC;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17674 次 |
| 最近记录: |