create table sclass(id int,foldername varchar(20));
insert into sclass values(431,'鲜花|玫瑰花|');
insert into sclass values(431,'鲜花|百合花|');create table class(id int,foldername varchar(20));
insert into class values(20114,'玫瑰花');
insert into class values(20115,'百合花');--已知  class表里 的 id=20114  查出 玫瑰花  然后 根据玫瑰花 得出 sclass 里的 431

解决方案 »

  1.   

    select
      id 
    from 
      sclass 
    where
      charindex('|'+(select foldername from class where id=20114)+'|','|'+foldername+'|')>0
      

  2.   

    create table sclass(id int,foldername varchar(20));
    insert into sclass values(431,'鲜花|玫瑰花|');
    insert into sclass values(431,'鲜花|百合花|');create table class(id int,foldername varchar(20));
    insert into class values(20114,'玫瑰花');
    insert into class values(20115,'百合花');
    select
      id 
    from 
      sclass 
    where
      charindex('|'+(select foldername from class where id=20114)+'|','|'+foldername+'|')>0/*id
    -----------
    431(1 行受影响)*/
    drop table class,sclass
      

  3.   

    SELECT * FROM dbo.sclass WHERE SUBSTRING(foldername,4,3) IN (SELECT a.foldername FROM dbo.class a WHERE a.id = 20114)
    是这个意思不?
    PS:两个表的字段名设成一样很容易乱的……