Sql 关于聚合函数
在SQL Server 2005中,当对数据类型为Sql 关于聚合函数,sql,sql-server-2005,Sql,Sql Server 2005,在SQL Server 2005中,当对数据类型为varchar(max)的列使用聚合函数时,为什么max、min、count聚合函数不能提供正确的输出 请告诉我朋友如果您希望最小值或最大值基于存储在VARCHAR(MAX)列中的十进制值,则必须先将此列转换为十进制。例如: SELECT MIN( CAST(val AS DECIMAL(28,4) ) AS min_val FROM your_table 仅当此VARCHAR列仅包含数值时,此操作才有效。在这种情况下,最好首先将此列的
varchar(max)
的列使用聚合函数时,为什么max
、min
、count
聚合函数不能提供正确的输出
请告诉我朋友如果您希望最小值或最大值基于存储在VARCHAR(MAX)列中的十进制值,则必须先将此列转换为十进制。例如:
SELECT
MIN( CAST(val AS DECIMAL(28,4) ) AS min_val
FROM
your_table
仅当此VARCHAR列仅包含数值时,此操作才有效。在这种情况下,最好首先将此列的类型更改为适当的十进制类型。那你就不必一开始就投了
在VARCHAR列上选择最小值或最大值将选择最小值/最大值,因此会考虑字符串的长度。您能给我们展示一些代码来说明您的观点吗?但它们确实提供了正确的输出(至少每次我使用它们时都是如此)。为什么您认为结果不正确?我认为该字段的最大值为100,最小值为16.355,行数为46。当我执行最小值时,它给出100,最大值为63.457,计数时,它只给出45。如果该字段有一个或多个值,则可能会出现这些问题。@Dhandshands您可以非常感谢我通过检查复选标记。