sql语句的字符串比较问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 11:01:07
职工ID的编号是varchar形式,也就是字符串吧,形如1001,1002,1003...2001,2002...这样,不同部门首数字不同。现在我想指定部门插入职工,比如在1003,1004, 2001,2002中间插入1005,我想获得这样的1005这个ID,于是我用
select top 1* from Employee where eID < '@tmpDIDStr' order by eID desc
这个是asp代码,@tmpDIDStr是参数,我试过如果不引起来就会出错。
其中@tmpDIDStr就是一个值为2000的string,我的思路是把所有小于2000的ID号倒序排列,选取第一个ID,也就是1004。再在末尾加上1,就得到了新ID。可是这样写的话返回的是空值。为什么?应该怎样写?谢谢。
如果数据库要求用varchar,而不得不用varchar进行比较呢,请说一下varchar比较的规则,谢谢

select top 1* from Employee where CONVERT ( int , eID ) < '@tmpDIDStr' order by eID desc

你的id编号如果是int型的话,你的就对了

varchar类型培训和int的排序不一样的。