为什么max
,min
,count
聚合函数在SQL Server 2005中针对数据类型varchar(max)
的列使用时,不能提供正确的输出?< / p>
请告诉我的朋友
答案 0 :(得分:0)
如果您希望最小值或最大值基于存储在VARCHAR(MAX)列中的十进制值,则必须先将此列CAST到DECIMAL。例如:
SELECT
MIN( CAST(val AS DECIMAL(28,4) ) AS min_val
FROM
your_table
仅当此VARCHAR列仅包含数值时,此操作才有效。在这种情况下,最好先将此列的类型更改为适当的DECIMAL类型。那么你首先不需要CAST。
在VARCHAR列上选择MIN或MAX将选择lexicographical最小值/最大值,从而将字符串的长度考虑在内。