MSSQL的MAX(or MIN)使用说明【就自增ID到10无法再增加 原因分析】

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_38093650/article/details/84617515

MAX()、MIN()是取极值的函数,它会根据字段的数据类型进行数据的获取,如下:

eg1:

select MAX(intColumn) from table —— intColumn为int类型字段,MAX函数会将表中的该字段以数值大小排序,再取最大值

eg2:

select MAX(varColumn) from table—— varColumn为varchar类型,MAX则会依次根据字符串的每一个字符编码进行比较进行排序,比如‘cas’、‘asd’、‘d’三者比较取‘d’,再比如‘9’,‘1235’,‘99’三者比较取‘99’,因为第一个字符比较:‘9’和‘99’的第一个字符‘9’比‘1235’的‘1’,当‘9’、‘99’的第一个字相同时比价下一个字符,则此时比较出‘99’更大

注意:以上的列子主要为一个sql的bug铺垫

当我们想自己模拟一个自增ID时,不小心或者需求要求把ID字段设置为varchar,这里使用MAX要提前把ID转化成int类型【convert(int,ID)】,否则直接使用ID增加到10时则不会再增加,因为MAX取值都是9,9+1都是10,所以切记用MAX之前一定要转换数据格式,如下:

select MAX(CONVERT(int,varColumn)) from table

展开阅读全文

没有更多推荐了,返回首页