我现在有2个表Table1,Table2。对应的字段、数据如下:Table1:primary key(a1)
a1(char)      a2(int)
   a            10
   b            30Table2:primary key(b1)
b1(char)      b3(int)
   a            5
   c            40
   d            100----------------------------------------------------------------------------------我想要实现的是:根据Table1的a1字段,得到a2或者b2的数据。
也就是说,如果Table2里面b1字段和Table1里的a1字段相同的,那么就用b2的数据。例如:根据以上的数据,我要得到的是:
a             5
b             30----------------------------------------------------------------------------------
请问这个SQL语句应该怎么写?

解决方案 »

  1.   

    对不起,上面的Table2的表结构写错了,修改下
    Table2:primary key(b1) 
    b1(char)      b2(int) 
      a            5 
      c            40 
      d            100 
      

  2.   


    --> 测试数据:[Table1]
    if object_id('[Table1]') is not null drop table [Table1]
    create table [Table1]([a1] varchar(1),[a2] int)
    insert [Table1]
    select 'a',10 union all
    select 'b',30
    --> 测试数据:[Table2]
    if object_id('[Table2]') is not null drop table [Table2]
    create table [Table2]([b1] varchar(1),[b2] int)
    insert [Table2]
    select 'a',5 union all
    select 'c',40 union all
    select 'd',100select a1,b=isnull(b2,a2) from [Table1] A left join Table2 B on A.a1=b.b1/*
    a1   b           
    ---- ----------- 
    a    5
    b    30(所影响的行数为 2 行)
    */
    drop table Table1,Table2
      

  3.   

    select a1,b=isnull(b2,a2) from [Table1] A left join Table2 B on A.a1=b.b1
      

  4.   

    select a1,b=isnull(b2,a2) from [Table1] A left join Table2 B on A.a1=b.b1