首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

between 用于varchar字段 查询结果出错!该如何解决

2012-03-05 
between 用于varchar字段 查询结果出错!!!!!!!!!顾客信息表里会员卡卡号(c_cardno)的数据类型为 varchar如

between 用于varchar字段 查询结果出错!!!!!!!!!
顾客信息表里会员卡卡号(c_cardno)的数据类型为 varchar
如果用
c_cardno between '800000000000' and '899999999999'

来查询考号段 会查询出 82048 类的卡号

这是什么原因????
是因为 between 用于字符类型的原因???

这种情况只能将c_cardno 转换成bigint 来查询吗????

[解决办法]
因为字符串比较是从首字母开始比对ASCII码,所以'9'是大于'81'的,因为对比第一位的时候9的ASCII码比8大,然后就不比第二位了。所以比对字符串形式的数字的时候,要么先把字符串转成数字,要么先把位数补齐,比如把'9'和'81'都补成三位的字符串'009'和'081'再对比。这样就不会出错了。

热点排行