有一个表A,格式如下:
   A1,     A2
   G01   20
   G02   21
   GH01  19
   GB01  20
   GA01  19
   GC1   19
   GD01  19
有表B,格式如下:
   B1,     B2
   G     41 
   GH    1
   GD    1
求表A中字段A1 like 表B中的字段B1的记录
即要得到结果:
   A1,     A2
  G01   20
  G02   21
  GH01  19
  GD01  19
各位有什么好的写法,用PATINDEX 能实现吗?

解决方案 »

  1.   

    SELECT A.* FROM A,B WHERE charindex(','+b.B1+',',','+a.A1+',')>0
      

  2.   

    select  A.* from A,B 
    where charindex(b.B1,a.A1)>0
      

  3.   

     SELECT A.A1,A.A2 FROM A 
     INNER JOIN B b
     ON CHARINDEX(B.B1,A.A1)>0
      

  4.   

    up up  呵呵 学习啦
      

  5.   

    create table TA( A1 varchar(10),A2 int)
    Go
    insert TA
    select   'G11', 20
    union select   'G02', 21
    union select   'GH01', 19
    union select   'GB01', 20
    union select   'GA01', 19
    union select   'GC1', 19
    union select   'GD01', 19Go
    create table TB(  B1 varchar(10),B2 int)
    GO
    insert TB
    select  'G', 41  
    union select   'GH', 1
    union select   'GD', 1select a1,a2 from TA a join TB b on left(a1,patindex('%[0-9]%',a1) - 1) = b1drop table ta,tb
    /* 结果a1         a2          
    ---------- ----------- 
    G02        21
    G11        20
    GD01       19
    GH01       19(4 row(s) affected)
    */
      

  6.   

    学习~!patindex 的用法仍在学习中~!