请问要按照非数字查找范围的SQL语句;例如:WHERE 1=1 AND '字段名' BETWEEN '1' AND '10',如果把数字改为字符怎么解决。谢谢!!

解决方案 »

  1.   

    字段名 BETWEEN '01' AND '10'  ??????
      

  2.   

    AND cast(字段名 as int) BETWEEN 1 AND 10
      

  3.   

    AND cast(字段名 as int) BETWEEN 1 AND 10
    AND convert(int , 字段名 ) BETWEEN 1 AND 10
      

  4.   

    convert(int,字段名 ) between 1 and 10
      

  5.   

    cast (1 as varchar(10))
      

  6.   

    AND cast(字段名 as int) BETWEEN 1 AND 10
    where 1=1 这是为什么?
      

  7.   

    不好意思,可能我提的问题有点不清楚。假如数据库里的那个字段是字符型的,当sql语句是 WHERE 1=1 AND '字段段名' BETWEEN ‘1’ AND ‘10’ 数据库里的数据没有这些值的,但是都查出来了,这是为什么啊?
      

  8.   

    你写的查询条件1=1必然成立,而BETWEEN ‘1’ AND ‘10’本应是数值间的条件,而现在成了字符的ASCII值,条件含糊不清,但也是有符合条件的数据存在,所以你说都查出来了。
      

  9.   

    不要1=1也是那样效果。假如数据库里有'0401001','0401002','0401003','0401004','0401005','0401006','0401007','0401008','0401009' 条件是   BETWEEN ‘1’ AND ‘10’结果会全部查出,这是为什么?
      

  10.   

    转换成ASCII试试
    --创建表
    CREATE TABLE t(
    Id INT,
    TC NVARCHAR(64)
    )--start text
    INSERT INTO t
    SELECT '1','a'
    UNION ALL
    SELECT '2','m'SELECT * FROM t WHERE cast(ASCII(tc) as int) BETWEEN 97 AND 109
      

  11.   

    恩,楼上的说的不错,但是现在是那种情况:'a0401001','040c1002','m0401v003','d0401004','040n1005','f0401006','0401d007','0401w008','0401h009'