select col1 from tb1 where col1 like '[6-9]+%' or col1 like"1[0-3]+%"

解决方案 »

  1.   

    select col1 from tb1 where col1 like '[6-9]+%' or col1 like '1[0-3]+%'
      

  2.   

    但我要从15-37的呢,,
    哪不是要构造很多吗?
    如col1 like '1[5-9]+%' or col1 like '2[0-9]+%'
    or col1 like'3[0-7]'
      

  3.   

    也可以试试我的,不过楼上的比较好
    SELECT COL1 FROM TB1 WHERE CONVERT(INT,LEFT(COL1,2))<13 AND CONVERT(INT,LEFT(COL1,2))>6
      

  4.   

    SELECT coll 
      FROM tb1 
     WHERE coll like SUBSTRING(CONVERT(varchar(20),coll),1,CHARINDEX('+'CONVERT(varchar(20),coll))-1)+'%'
    如果coll是字符串类型就不用转换了
      

  5.   

    上面写错了
    SELECT coll 
      FROM tb1 
     WHERE CONVERT(int,SUBSTRING(CONVERT(varchar(20),coll),1,CHARINDEX('+',CONVERT(varchar(20),coll))-1)) BETWEEN 6 and 13
      

  6.   

    但我要从15-37的呢,
    col1 like '1[5-9]+%' or col1 like '2[0-9]+%'
    or col1 like'3[0-7]+%'用CONVERT的方法不能保证正确,因为是写在WHERE里的,万一表里有一条不能转换就会出错.15-87
    可以这么写:
    col1 like '1[5-9]+%' or col1 like '[2-7][0-9]+%'
    or col1 like'8[0-7]+%'
    这样举例是为了说明并不必写得很长.
      

  7.   

    SELECT COLL 
    FROM TABLE 
    WHERE LEFT(COLL,CHARINDEX('+',COLL)-1)>=6 
      AND LEFT(COLL,CHARINDEX('+',COLL)-1)<=13
      

  8.   

    看来还是CSDNM的好,
    不过为什么不能直接写15-37呢?
      

  9.   

    数据能保证就可以用转成整数的方法,但按道理性能还是不如LIKE
    LIKE的缺点是不好写程序,特别是条件是在程序里生成的,但也能写出来,不管是VB还是DELPHI.
      

  10.   

    写是写出来了,在PB中,,
    只是太麻烦,生成的SQL好长,,