create table tb1(ac varchar(10))insert into tb1  values('st')
insert into tb1  values('mc')
insert into tb1  values('tc')create table tb2(da varchar(10)) insert into tb2 values('stb')
insert into tb2 values('mtc')
select tb2.* from tb1,tb2 where charindex(tb1.ac,tb2.da)>0

解决方案 »

  1.   

    楼上正确,我给出结果.create table tb1(ac varchar(10))
    insert into tb1  values('st')
    insert into tb1  values('mc')
    insert into tb1  values('tc')create table tb2(da varchar(10)) 
    insert into tb2 values('stb')
    insert into tb2 values('mtc')select tb2.* from tb1,tb2 where charindex(tb1.ac,tb2.da)>0drop table tb1,tb2/*
    da         
    ---------- 
    stb
    mtc(所影响的行数为 2 行)*/
      

  2.   

    --或者如下:
    create table tb1(ac varchar(10))
    insert into tb1  values('st')
    insert into tb1  values('mc')
    insert into tb1  values('tc')create table tb2(da varchar(10)) 
    insert into tb2 values('stb')
    insert into tb2 values('mtc')select tb2.* from tb1,tb2 where tb2.da like '%' + tb1.ac + '%'
    /*
    da         
    ---------- 
    stb
    mtc(所影响的行数为 2 行)*/drop table tb1,tb2
      

  3.   

    那么继续:如果是如下情况:表1中有两个字段AC、BC,若干记录行,如下:
    st   tm
    mc   cy
    tc   xd表2中有一个字段DA现在表2中的记录行中字段DA的字符包含表1中AC的记录的内容,现要求按照表1中的规则,将DA的内容中包含AC的内容显示成BC的内容。比如stb包含st,那么就显示为tmb、mtc包含tc,那么就显示为mxd。现在要求使用一条查询语句,显示出如上内容。不要定义函数,不使用存储过程。
      

  4.   

    自己作答吧,可以如下:SELECT TEST.ID,REPLACE(TEST.INAME,CT.AC,CT.CC),TEST.INAME FROM CT,TEST WHERE TEST.IName LIKE '%' + CT.AC+ '%'