因为'123'>'1000',所以不满足BETWEEN '1' AND '1000',所以不会出NAME='123'的记录

解决方案 »

  1.   

    SELECT * FROM A WHERE cast([NAME] as int) BETWEEN 1 AND 1000
      

  2.   

    select * from a where convert(int,name) between 1 and 1000
      

  3.   

    问:
    NAME 达到 '4000000'
    SQLSERVER中int的取值范围能容下吗?
      

  4.   

    没问题int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
      

  5.   

    BETWEEN '1' AND '1000' 这是比较字符串
      

  6.   

    同意楼上,字符串的比较是一位一位进行比较的。
    应该是:
    select * from 表
    where convert(int,name) between 1 and 1000
      

  7.   

    SELECT * FROM A WHERE cast([NAME] as int) BETWEEN 1 AND 1000我觉得这样好一点,,,