
查询表中最大数据+1
select MAX(number)+1fromT_UniversityStudent
执行结果

问题原因
为什么明明数据库中有了7840条数据,而数据记录是每次加1,那为什么会造成这中问题呢?
我想有经验的开发者,已经知道了,是不是数据类型有问题了。在字符串的大小比较中9>1000是成立的,也就是说999>7840也是正确的。
我们通过排序来验证是否上述的说法是正确的
select number from T_UniversityStudentorderbynumber asc
执行结果

问题解决
既然我们已经知道了是字段设计的过程中存在问题,那么我们最简单的就是讲字段的数据类型改了,但由于我们不了解修改数据类型之后会不会造成不良的后果,因此这种方法并不是最好的。
这时我们就能用到cast函数和convert函数了。
具体的用法如下
通过将varchar类型转化成int类型排序(使用convert函数)
select number from T_UniversityStudentorderbyconvert(int,number)asc
执行结果

将查询字段中的varchar转换成int
select MAX(cast(numberasint))+1fromT_UniversityStudent
执行结果

需要注意的是convert函数只能运用在SQLServer中而cast函数可以用在oracle和SQL Server中,至于其他数据库中是否支持还需要读者自己尝试了。
SQLServer---查询过程中的数据类型转化
标签:convert cast 查询中数据类型
本文系统来源:http://blog.csdn.net/senior_lee/article/details/45653435
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!