没有得到sql查询的预期结果来查找最大值

时间:2014-09-01 13:24:54

标签: sql

我试图从表中获取最大值,但它没有给我正确的值(最大值)。

我使用此查询获取值

SELECT MAX(column_name1) FROM table_name WHERE column_name2 = 'some_value'

column_name的数据类型是VARCHAR。这是显示这个意外结果的问题吗?

4 个答案:

答案 0 :(得分:0)

嗯。该值始终为'some_value'。如果您需要max(),请删除where子句:

SELECT MAX(column_name)
FROM table_name;

数据类型与问题无关。

然后你会使用:

SELECT MAX(salary)
FROM table_name
WHERE name = 'John';

编辑:

如果将数字和日期存储为字符串而不是使用本机SQL类型,那么您一定会遇到问题。 MySQL确实可以轻松地从字符串转换为数字,因此您可以尝试这样做:

SELECT MAX(salary + 0)
FROM table_name
WHERE name = 'John';

但真正的解决方案是修复数据类型。

答案 1 :(得分:0)

我认为这是由数据类型引起的。所以请将数据类型更改为int或float并尝试一次。

答案 2 :(得分:0)

MAX()函数用于应用整数值,而不是用于varchar

答案 3 :(得分:0)

我试图将varchar转换为int并且现在正在工作。我改变了这样的查询 -

SELECT MAX(CAST(column_name1 AS Int))FROM table_name WHERE column_name2 ='some_value'