繁体   English   中英

SQL Server 2012:varchar列上的MAX不能按预期工作

[英]SQL Server 2012: MAX on varchar columns not working as expected

我在varchar列上使用像MAX这样的聚合。 当我在varchar列上执行简单选择时,我得到4个字符的值,即“övrö” 在那一栏中,我发现了很多长度更大的值。 我的理解是,它应该返回一个类似于“ asdfsadfasdfasdfsadfsdafsdafsadfasdfsadfasdf”的值。

如果我误解/滥用MAX,请纠正我,因为我必须在复杂的SQL中使用此概念以避免重复的记录。

如果varchar上的MAX根据字母顺序获得最高记录,那么如果我将它用于特定的列(如图2所示的#2和3),它仍会导致重复值的原因。红色边框区域显示重复项,应该是单行。

结果

编辑-已解决的问题

问题是我在Group By子句中添加了字符串列Aggregates,删除后,重复项消失了!!!

谢谢您的帮助。

最小值和最大值获得最大值。 对于varchar,它不是长度,但可以想象它们是按字母顺序排序的。 Max取最后一个元素,而min取第一个元素。

如果要采用最大长度,则需要max(length(column))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM