表中某字符串列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
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
3 回答2.3k 阅读
假设表名为 t,该列为 c,先截去定长的前缀得到纯数字,再转为整型作为排序依据: