是否可以按表中的字符选择最短和最长的字符串?
我有一个 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;
当按字母顺序排列时,让城市名称列为、def、pqrs和wxy,长度分别为3、3、4和3。最长命名城市显然是pqrs,但最短命名城市有选择;我得选,因为它是按字母顺序排在第一位的。
我的查询结果是三个城市的长度都是3。 ABC 3 DEF 3 PQRS 4 WXY 3
select的结果必须是 ABC 3 PQRS 4
11条答案
按热度按时间rnmwe5a21#
我发现这个很简单:
u4vypkhs2#
不管怎样,我得到了答案
0sgqnhkj3#
尝试这些查询。
最长城市名称:
最短城市名称:
h79rfbju4#
上面的代码应该很容易理解。第一个查询显示最短的城市名称及其长度。第二个输出最长。
093gszye5#
我读了上面midhun manohar的评论:https://stackoverflow.com/a/50813334/11129060
我是个新手,所以这些对我来说更容易理解:
或者另一个职位似乎更容易:https://stackoverflow.com/a/41285068/11129060
2nbm6dog6#
请查看以下查询:
um6iljoc7#
可以使用并集运算符
更多示例https://dev.mysql.com/doc/refman/8.0/en/union.html
goqiplq28#
更干净的方式:
wa7juj8i9#
我知道你已经选择了你的答案,但这里有一个简短的答案,可能会有所帮助。这是使用microsoftmysql服务器,但也可以使用calllimit而不是top轻松地转换为任何其他类型。
最短长度
最长长度
yvfmudvl10#
我试过了,找到了mysql数据库查询的解决方案,
我认为用限制比用行号好。
jtjikinw11#
我想你需要
union
如果我理解正确,使用子查询: