我有 SQL 表,其中有列 DISTANCE (varchar50)。它是带点的数字。
+----+--------+--------+----------+
| ID | USERID | MONTH | DISTANCE |
+----+--------+--------+----------+
| 1 | 1 | 201707 | 7.25 |
+----+--------+--------+----------+
| 2 | 2 | 201707 | 9.17 |
+----+--------+--------+----------+
| 3 | 2 | 201707 | 10.31 |
+----+--------+--------+----------+
| 4 | 1 | 201706 | 10.08 |
+----+--------+--------+----------+
我想显示距离的最大值。如果我按距离 DESC 排序,结果是:
SELECT * FROM mytable ORDER BY distance DESC
9.17
7.25
10.31
10.08
我尝试找到最大值,但仍然不正确
SELECT MAX(distance) AS mvzd FROM mytable
9.17
如何使用提供的示例数据获得正确的最大距离值(应为 10.31
)?
最佳答案
您可以使用以下查询:
select max(cast(distance as decimal(10,2))) AS mvzd FROM mytable
通过您现有的查询,您在 VARCHAR
类型列上找到 MAX
,并且您得到了您所写的正确结果!如果您想获得所需的结果,首先您必须像我在上面的查询中所做的那样转换该列的类型。
关于php - SQL查找VARCHAR类型列中的最大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47655548/