sql中用max取温度字段的最大值和最小值,结果发现最大值9度,而最小值10度

分析温度数据的时候,想取每天温度的最高值和最低值

代码用的是:max(temperature),min(temperature)

结果:sql中用max取温度字段的最大值和最小值,结果发现最大值9度,而最小值10度

在网站上搜索不到解决方法,只是说max是按照字符比较大小

有什么解法嘛?

temperature不是int类型?
先转为int类型,再用max()、min()函数。

cast([字段] as int)

按字符串比较的话,是从左至右去比较,9当然比1大。
如果你想用数字大小去比较,那么就得先把它转换成数字,这就要看你的数据库是哪种类型了,不同数据库转换方式有区别,但大多数数据库支持使用cast来进行转换。
比如

max(cast(temperature as decimal))

上面专家说的int类型肯定是不行的,温度当然会有小数。
另外,如果你这个温度里除了数字,还有其他符号或者文字的话,比如"℃",那么在转换类型前,还得把这些玩意去掉,比如

max(cast(replace(temperature,'℃') as decimal))

估计你的数据类型是varchar,检查一下数据类型。