本帖最后由 kavianp 于 2011-06-09 03:17:40 编辑

解决方案 »

  1.   

    select * from tbname where substring(b,1,1) between 'A' and 'B'
      

  2.   

    select * from tbname where substring(b,1,1)='v' and substring(b,2) between 1 and 20
      

  3.   

    --1.
    SELECT * 
    FROM tbname
    WHERE b LIKE 'v%'
    AND CAST(STUFF(b, 1, 1, '') AS FLOAT) BETWEEN 1 AND 20
    --2.
    SELECT * 
    FROM tbname
    WHERE b LIKE '[AB]%'
      

  4.   


    use tempdb;
    /*
    create table tbname
    (
    a nvarchar(20) not null,
    b nvarchar(20) not null
    );
    insert into tbname(a,b)
    values
    ('kavian','A1'),
    ('kavian2','B2'),
    ('kavian3','C3'),
    ('kavian4','B4'),
    ('kavian5','A5'),
    ('kavian6','A6'),
    ('kavian7','B7'),
    ('kavian8','A8'),
    ('kavian9','C9'),
    ('kavian10','A10'),
    ('kavian20','B20'),
    ('kavian30','A30'),
    ('kavian40','B40'),
    ('kavian50','C50'),
    ('kavian60','A60'),
    ('kavian70','B70'),
    ('kavian80','A80'),
    ('kavian90','V90'),
    ('kavian100','V100');
    */
    --1.
    select * from tbname 
    where substring(b,1,1) = 'v' and CAST(right(b,LEN(b)-1) as int) between 1 and 20;
    --2.
    select * from tbname 
    where substring(b,1,1) between 'A' and 'B';
      

  5.   

    --2.
    SELECT * 
    FROM tbname
    WHERE b LIKE '[A-B]'
      

  6.   

    --1.
    SELECT * 
    FROM tbname
    WHERE b LIKE 'v[1-9]%' or  b LIKE 'v1[1-9]%' or b='v20'
      

  7.   

     CAST(right(b,LEN(b)-1) as int) 和CAST(STUFF(b, 1, 1, '') AS FLOAT) BETWEEN 1 AND 20
    以上两种适合在当前数据下,否则增加一条记录VV01,则会报错(因为第二位不是数字是字母)
      

  8.   

    1.
    select * from tb where substring(b,1,1) = 'v' and CAST(right(b,LEN(b)-1) as int) between 1 and 20;2.
    select * from tb where substring(b,1,1) between 'A' and 'B';
      

  9.   


    1、select * from tbname where substring(b,1,1)='v' and cast(substring(b,2,len(b)-1) as int) between 1 and 202、select * from tbname where substring(b,1,1) in ('A','B')
      

  10.   


    declare @table table (col varchar(3))
    insert into @table
    select 'V2' union all
    select 'V4' union all
    select 'V7' union all
    select 'V10' union all
    select 'A1' union all
    select 'B2' select * from @table where 
    left(col,1)='V' and
    'V'+right('0000'+substring(col,2,len(col)),len(col)) 
    between 'V01' and 'V21'SELECT * FROM @table WHERE col LIKE '[AB]%'/*
    col
    ----
    V2
    V4
    V7
    V10(4 row(s) affected)col
    ----
    A1
    B2(2 row(s) affected)
    */