昨天早上,我的经理给了我一个新的数据库,我必须写几个SQL存储过程。有一个列MM用于数值,所以我理解Sql Function MAX将对它起作用。但事实并非如此。
这是一个varchar列,其中包含从1到41随机存储的数值。我假设我的SQL语句:“SELECT MAX(MMS)FROM tbl”将给出41作为结果但它的结果为9。
后来我在使用字符串数据类型时投入了MAX,从列中取出第一个数字,然后将MAX输出。
有人知道为什么会这样吗?
答案 0 :(得分:4)
从这里开始:
http://msdn.microsoft.com/en-uk/library/ms187751.aspx
对于字符列,MAX在整理中找到最高值 序列
如果要以数字方式对列的内容进行排序,可以执行以下操作:
ORDER BY len(mms), mms