表中某字符串列c内容如下:
abc1
abc2
abc3
....
abc999
....
abc1024
如何使查询返回abc1024,而不是abc999(使用max(c)得到的结果)
表中某字符串列c内容如下:
abc1
abc2
abc3
....
abc999
....
abc1024
如何使查询返回abc1024,而不是abc999(使用max(c)得到的结果)
找了一会找到了答案:
how to select max of mixed string/int column?
MySQL
SELECT MAX(CAST(SUBSTRING(c, 4, LENGTH(c)-3) AS UNSIGNED)) FROM table
T-SQL / SQL Server
SELECT MAX(CAST(SUBSTRING(c, 4, LEN(c)-3) AS int)) FROM table
1 回答2.6k 阅读✓ 已解决
3 回答2.4k 阅读
1 回答2.4k 阅读
1 回答1.1k 阅读✓ 已解决
1 回答896 阅读✓ 已解决
1 回答1k 阅读
1 回答702 阅读✓ 已解决
假设表名为 t,该列为 c,先截去定长的前缀得到纯数字,再转为整型作为排序依据: