表A.字段1, 字段2..........., 名字 =表A的记录 (下面表B的记录是匹配本条记录的结果)
表B.字段1, 字段2..........., 名字 =表B.字段1 Like 表A.字段1% 的记录1
表B.字段1, 字段2..........., 名字 =表B.字段1 Like 表A.字段1% 的记录2
表B.字段1, 字段2..........., 名字 =表B.字段1 Like 表A.字段1% 的记录3
表B.字段1, 字段2..........., 名字 =表B.字段1 Like 表A.字段1% 的记录n
表A.字段1, 字段2..........., 名字 =表A的记录 (下面表B的记录是匹配本条记录的结果)
表B.字段1, 字段2..........., 名字 =表B.字段1 Like 表A.字段1% 的记录1
表B.字段1, 字段2..........., 名字 =表B.字段1 Like 表A.字段1% 的记录n
.
.
.
.
.
.
一直到 表A 的最后一条记录(如果中间的表A.字段1在表B.字段1中未找到匹配记录 则都不输出)表A.字段1 比 表B.字段1 的实际字符数要少,所以要 Where 表B.字段1 like 表A.字段1%

解决方案 »

  1.   

    是不是这个意思declare @ta table(col1 varchar(10),col2 varchar(10))
    insert @ta select '1','a1'
    insert @ta select '2','a2'
    insert @ta select '3','a3'
    declare @tb table(col1 varchar(10),col2 varchar(10))
    insert @tb select '1','b1'
    insert @tb select '1','b2'
    insert @tb select '2','b3'
    insert @tb select '2','b4'
    insert @tb select '2','b5'
    insert @tb select '3','b6'select * from @ta union all
    select * from @tb
    order by col1
    col1       col2       
    ---------- ---------- 
    1          a1
    1          b1
    1          b2
    2          b3
    2          b4
    2          b5
    2          a2
    3          a3
    3          b6(所影响的行数为 9 行)
      

  2.   

    --建立測試環境
    Create Table TEST1
    (ID Int,
     Name Varchar(10))Create Table TEST2
    (ID Int,
     Name Varchar(10))
    GO
    --插入數據
    Insert TEST1 Select 1,'a'
    Union All Select 2,'b'
    Union All Select 3,'c'Insert TEST2 Select 1,'aaaa'
    Union All Select 2,'aasdsa'
    Union All Select 3,'adsac'
    Union All Select 4,'bsac'
    Union All Select 5,'bsac'
    Union All Select 6,'dsac'
    GO
    --測試
    Select * From
    (Select A.*
    From TEST1 A Inner Join TEST2 B On B.Name Like A.Name+'%'
    Union
    Select B.*
    From TEST1 A Inner Join TEST2 B On B.Name Like A.Name+'%') C
    Order By Name
    GO
    --刪除測試環境
    Drop Table  TEST1,TEST2
    --結果
    /*
    ID Name
    1 a --表A的记录
    1 aaaa
    2 aasdsa
    3 adsac
    2 b --表A的记录
    4 bsac
    5 bsac
    */
      

  3.   

    To eddy8863(西北狂)结果需要 Where B.字段1 like A.字段1--------------------------------------------------------------------
    To paoluo(一天到晚游泳的鱼)因为数据量太大了,查询起来太慢。不知道我这样查结果和你的会不会一样,A的数据依据B内匹配到的数据重复显示,B内没匹配到A的不显示。Select A.AID,A.PartNo,B.BID,B.PartNo From A,B Where B.PartNo Like A.PartNo+'%' Order By A.PartNo,A.AID
      

  4.   

    我再把问题描述一次两个表 A B需要拿 A 的数据 去 B 内查找匹配的结果两个表的格式95%相同,只要求返回几个相同的字段。希望返回的结果是A的数据=(在B内拥有匹配的数据)
    B的数据=(上面A在B内匹配到的数据)
    B的数据=(上面A在B内匹配到的数据)
    B的数据=(上面A在B内匹配到的数据)
    下一条
    A的数据=(在B内拥有匹配的数据)
    B的数据=(上面A在B内匹配到的数据)
    B的数据=(上面A在B内匹配到的数据)
    B的数据=(上面A在B内匹配到的数据)
    下一条
    .
    .
    .
    最后一条
    A的数据=(在B内拥有匹配的数据)
    B的数据=(上面A在B内匹配到的数据)
    B的数据=(上面A在B内匹配到的数据)
    B的数据=(上面A在B内匹配到的数据)注:上面的结果中 如果 A在B内没有匹配数据则不需要返回。