我的数据库access中有一个字段是文本,保存了一些数字,比如1、2、3、31等
我在不改变字段属性的情况下,建立查询,如查字符是>=5 到 <=10 之间的记录。
但结果是11、12、等等都出来了
如果把字段修改为数字字段,那结果就是5到10之间
大家有没有好的方式,在不改变字段的情况下,建立正确的查询。我试过用cint函数,但不行,请大家看看。

解决方案 »

  1.   

    select * from table where charfield*1>=5 and charfield*1<=10
      

  2.   

    请问charfield*1 是代表什么意思?为什么要这样?
      

  3.   

    我试过了,不可以得到。比如我想得到1到2之间的数据,结果1、2、10、11、、、、17都出来了,大家是否有好方式。
    ======================================'
    不会吧建一个表,只有一个文本字段charfield
    值如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    然后:
    select * from table where charfield*1>=5 and charfield*1<=10得到:
    5
    6
    7
    8
    9
    10比如我想得到1到2之间的数据
    ==================
    1到2之间会有什么数据???1.2??1.34???1.78????
    用上面的方法应该都可以的至于为什么这样做,我也说不太清楚,是以前看一位csdner的大侠这样做了,自己试了,居然行得通,简单方便,就记下来了后来想想,或许象VB似的,可以在access中进行隐性转换,charfield*1把charfield先转换成数字再进行查询吧。。我试过了,不可以得到。
    =================
    你看清楚,你的记录中是不是全部都是有效的数字文本,假如有一些不是,那么上面的语句可能会出错。。例如charfield=“6.7”是正常的,但如果charfield=“abc”或charfield=“6..70”等上面的查询就应该会出错。。
      

  4.   


    select * from table where charfield*1>=5 and charfield*1<=10一开始对数据进行强制类型转换了。