一个表中有这样的字段:  CODE
-------- 
SA
SAB
CA
CB
S
CD
现在有一个字符串‘SABC’,要得到所以在这个串中右边出现的 code 。如何写sql得到:SA
SAB
S

解决方案 »

  1.   

    楼上的,不是这样写的,如果code中有一条为'SD',那么,这条就不能在结果集中。
      

  2.   

    code in ('s','sa','sab','sabc')
      

  3.   

    select * from tblname where left('SABC', len([CODE])) = [CODE]
      

  4.   

    如要查中间带“S”的用
    like '*S*'
    *---------多个字符匹配
    ?---------单个字符匹配
      

  5.   

    --建立一个表 test 字段 code ,测试数据----
    --调用 exec mytest 'abcd',test
    create  procedure Mytest
    @str char(10),
    @table char(10)
    as 
    declare @substr char(10),
            @i integer,
    @sql nvarchar(1000)--set @str='abcd'
    set @sql='select code from '+@table+' where (len(code)=1 and code like left('+''''+@str+''',1))'
    set @i=2
    while @i<= len(@str) 
    begin
       set @sql=@sql+' or (len(code)='+cast(@i as char(2))+' and code like left('+''''+@str+''','+cast(@i as char(2))+'))'
       set @i=@i+1
    end 
    exec( @sql)sqlserver中测试通过
      

  6.   

    谢谢, weizi2000(秋风啊) ,帮我解决不少问题了。
      

  7.   

    SELECT * from 表名 where code like  's*'
      

  8.   

    select * from tblname where left('SABC', len(CODE)) = CODE
    你最好把你的字段code改为别的名字